拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 Java连载154-IO总结(一)

Java连载154-IO总结(一)

白鹭 - 2022-03-11 1974 0 0

一、类图

154.1
154.1
  • 基本上IO可以分为字节流和字符流

二、字符大小

  • 一般来说一个字母占用一个字节,一个汉字占用两个位元组,具体还要看字符编码,比如说在 UTF-8 编码下,一个英文字母(不分大小写)为一个字节,一个中文汉字为三个位元组;在 Unicode 编码中,一个英文字母为一个字节,一个中文汉字为两个位元组,

三、常用方法

InputStream

  • int read() 读取资料
  • int read(byte[] b, int off, int length) 从第off个位元组开始读取长度为length的字节,放到阵列b中
  • long skip(long n) 跳过指定长度的字节
  • int available() 回传可读取的字节长度
  • void close() 关闭字节流

OutputStream

  • void write(int b) 写入一个字节,虽然传入的是int型别,但是只会传入低八位,前24位舍弃
  • void write(byte[] b, int off, int length) 在阵列b中,从第off个位元组开始,读取长度为length的字节
  • void fluhsh() 强制重绘,将缓冲区资料写入
  • void close() 关闭字节流

Reader

  • int read() 读取资料
  • int read(char[] b, int off, int length) 从第off个字符开始读取长度为length的字符,放到阵列b中
  • long skip(long n) 跳过指定长度的字符
  • int ready() 是否可以读了
  • void close() 关闭字节流

Writer

  • void write(char b) 写入一个字符
  • void write(byte[] b, int off, int length) 在阵列b中,从第off个位元组开始,读取长度为length的字节
  • void fluhsh() 强制重绘,将缓冲区资料写入
  • void close() 关闭字节流

四、按照IO流操作的物件来进行分类

154.2
154.2

五、分别举例

  • 先举个FileInputStream的列子
package com.newJava;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public class D154_InputOutputStream {
 public static void main(String[] args) {
  InputStream is = null;
  String address = "E:\\d05_gitcode\\Java\\newJava\\src\\com\\newJava\\newFile.txt";
  int b;
  try {
   is = new FileInputStream(address);
   while ((b = is.read()) != -1) {  // 可以看出是一个字节一个字节读取的
    System.out.println((char)b);
   }

  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   try {
    is.close();
   } catch (IOException e) {
    e.printStackTrace();
   }
  }
   
 }

}

154.3
154.3
  • 原文 154.4

六、原始码:

  • github路径:https://github.com/ruigege66/Java/blob/master/newJava/src/com/newJava
  • CSDN:https://blog.csdn.net/weixin_44630050
  • 博客园:https://www.cnblogs.com/ruigege0000/
  • 欢迎关注微信公众号:傅里叶变换,个人账号,仅用于技术交流 1000.0
标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *