Java IO 流操作
TIP
Java IO 流是处理输入输出操作的基础,分为字节流和字符流两大类。
IO 流分类
字节流 字符流
├── InputStream ├── Reader
│ ├── FileInputStream │ ├── FileReader
│ └── BufferedInputStream │ └── BufferedReader
├── OutputStream └── Writer
│ ├── FileOutputStream ├── FileWriter
│ └── BufferedOutputStream └── BufferedWriter文件读取
字节流读取
java
try (FileInputStream fis = new FileInputStream("data.bin")) {
int data;
while ((data = fis.read()) != -1) {
System.out.print((char) data);
}
}字符流读取(推荐处理文本)
java
try (BufferedReader br = new BufferedReader(new FileReader("test.txt"))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
}文件写入
java
try (BufferedWriter bw = new BufferedWriter(new FileWriter("output.txt", true))) {
bw.write("Hello, World!");
bw.newLine();
bw.write("追加写入第二行");
}复制文件
java
public static void copyFile(String src, String dest) throws IOException {
try (FileInputStream in = new FileInputStream(src);
FileOutputStream out = new FileOutputStream(dest)) {
byte[] buffer = new byte[8192];
int len;
while ((len = in.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
}
}TIP
- 处理文本文件优先使用字符流(Reader/Writer)
- 处理图片、视频等二进制文件使用字节流(InputStream/OutputStream)
- 使用缓冲流(BufferedXxx)可大幅提升读写性能