Java中输入输出流特点的总结


Java的输入输出流

  • 流:一连串流动的字符,以先进先出的形式发送和接收信息。
文件输入
文件输出

File类的使用

File类

  • 文件可认为是相关记录或放在一起的数据的集合
  • 在Java中,使用java.io.File类对文件进行操作。

创建File类实例的三种方式

  • 可以把主目录与子目录分开作为参数进行实例化,下面是三种方式的实例代码。
//方式1,直接把绝对路径作为构造函数参数来构建实例
File file1=new File("c:\\imooc\\io\\score.txt");
//方式2,把父路径和子路径分开作为两个参数来构建实例
File file1=new File("c:\\imooc","io\\score.txt");
//方式3,分两次构建实例
File file=new File("c:\\imooc");
File file1=new File(file,"io\\score.txt");

字节流

  • 字节输入流InputStream
  • 字节输出流OutputStream

字节输入流

字节输入流结构示意图

文件输入流FileInputStream

  • 从文件系统中的某一个文件中获得输入字节;
  • 用于读取诸如图像数据之类的原始字节流
方法名 描述
public int read() 从束流中读取一个数据字节
public int read(byte[] b) 从输入流中将最多b.length个字节的数据读入一个byte数组中
public int read(byte[] b, int off, int len) 从输入流中将最多len个字节的数据读入byte数组中
public void close() 关闭此文件中输入流并释放与此流有关的所有系统资源
  • 如果返回值为-1,则表示已经到达文件末尾
  • 读完文件之后需要使用close()方法来释放资源

缓冲输入流BufferedInputStream

  • 提高读写速度
  • 需要与文件输入输出流结合,把输入流的子类当成构造函数参数输入。

字节输出流

字节输出流结构示意图

缓冲输入流BufferedOutputStream

  • 提高读写速度
  • 需要与文件输入输出流结合,把输出流的子类当成构造函数参数输入。

字符流

  • 适用于发送和接收字符的情况使用

字符输入流

字符输入流结构示意图

字符输出流

字符输出流结构示意图

字节字符转换流

  • InputStreamReader()
  • OutputStreamReader()
  • 可以把二进制字节流与字符流互相转化

对象的序列化和反序列化

对象序列化

  • 步骤:

    1. 创建一个类,继承Serializable接口;
    2. 创建对象;
    3. 将对象写入文件;
    4. 从文件读取对象信息。
  • 对象输入流ObjectInputStream

  • 对象输出流ObjectOutputStream

  • 序列化:把Java对象转换为字节序列的过程;

  • 反序列化:把字节序列恢复为Java对象的过程。


文章作者: 南航古惑仔
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 南航古惑仔 !
  目录