Java IO流详解

Java IO流详解

IO概述

Java IO是Java中进行输入输出操作的基础包,包括字节流和字符流两大类。

分类

字节流

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

字符流

  • Reader:输入字符流
  • Writer:输出字符流

常用类

字节流

1
2
3
4
5
6
7
// 文件字节流
FileInputStream fis = new FileInputStream("file.txt");
FileOutputStream fos = new FileOutputStream("file.txt");

// 缓冲字节流
BufferedInputStream bis = new BufferedInputStream(fis);
BufferedOutputStream bos = new BufferedOutputStream(fos);

字符流

1
2
3
4
5
6
7
// 文件字符流
FileReader fr = new FileReader("file.txt");
FileWriter fw = new FileWriter("file.txt");

// 缓冲字符流
BufferedReader br = new BufferedReader(fr);
BufferedWriter bw = new BufferedWriter(fw);

转换流

1
2
InputStreamReader isr = new InputStreamReader(System.in);
OutputStreamWriter osw = new OutputStreamWriter(System.out);

装饰器模式

1
2
3
4
5
6
// 层层包装
DataInputStream dis = new DataInputStream(
new BufferedInputStream(
new FileInputStream("file.txt")
)
);

NIO

1
2
3
Path path = Paths.get("file.txt");
byte[] data = Files.readAllBytes(path);
Files.write(path, data);

总结

Java IO体系庞大,核心是装饰器模式。实际开发中优先使用缓冲流和NIO提高性能。