IO流的分类:
按方向:输入流,输出流
按类型:字符流,字节流
字符流:通过char类型获取
public class ZIfuhuanchongliu {
public static void main(String[] args) throws IOException {
FileReader reader = new FileReader("D:\\java\\java2021-10-27\\01-笔记\\笔记.md");
Writer writer = new FileWriter("D:\\java\\java2021-10-27\\01-笔记\\we.txt");
String len;
while ((len=budder1.readLine())!=null){
buffer2.write(len+"\n");
}
writer.close();
reader.close();
}
}
字节流:通过byte类型获取
按功能:节点流,过滤流
字节流
public class InputStremPracuice {
public static void main(String[] args) throws IOException {
InputStream ios = new FileInputStream("D:\\截图图片\\微信图片_20211024215005.jpg");
OutputStream outf = new FileOutputStream("C:\\Users\\Administrator\\Desktop\\skr.jpg");
byte[] id = new byte[512];
int skt = 0;
while (true) {
skt = ios.read(id);
System.out.println("输出到第" + skt + "字节");
if (skt == -1) {
break;
}
outf.write(id,0,skt);
}
outf.close();
ios.close();
}
}
字节输入流:InputStream
-
FileInputStream
字节输出流
-
OutputStream
-
FileOutputStream
缓冲流
在源文件和程序中间加一个中间人:缓冲流
程序直接操作缓冲流
缓冲流直接操作缓冲流
缓冲流会减少对于磁盘io频率,进而提升程序的性能
Buffer:缓冲
package com.mobiletrain;
import java.io.*;
// 缓冲字符流
public class BufferedIOPractice {
public static void main(String[] args) throws IOException {
Reader reader = new FileReader("/Users/LEAF/Downloads/J2104-1102/01-笔记/笔记.md");
Writer writer = new FileWriter("/Users/LEAF/Downloads/copy.md");
BufferedReader br = new BufferedReader(reader);
BufferedWriter bw = new BufferedWriter(writer);
// 一行一行读
// 如果没读到null,代表还有下一行,所以就继续循环,继续读
// 如果读到了null的话,代表读到了文件尾,条件不满足,循环跳出
String line;
while ((line = br.readLine()) != null) {
bw.write(line + "\n");
}
bw.close();
br.close();
writer.close();
reader.close();
}
}