字节流和字符流的转换
字节流和字符流的转换
字节流和字符流的转换
graph TD
A(转换流)-->B(输入流)-->C(InputStreamReader)
A-->D(输出流)-->E(OutputStreamWriter)
字节流到字符流的转换
使用场景
在JDK11之前,指定编码读写。
// 如何解决乱码现象
// 文件是什么码表,那么咱们就必须使用什么码表去读写
// 我们就要指定GBK码表去读取文件
InputStreamReader isr = new InputStreamReader(new FileInputStream("D:\\a.txt"), "GBK");
int ch;
while((ch = isr.read()) != -1){
System.out.println((char) ch);
}
isr.close();
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("D:\\b.txt"));
osw.write("我爱学习,谁也别打扰我");
osw.close();
JDK11之后,FileReader可以直接指定编码表
// JDK11之后,字符流新推出了一个构造,也可以指定编码表
FileReader fr = new FileReader("D:\\a.txt", Charset.forName("gbk"));
int ch;
while ((ch = fr.read()) != -1){
System.out.println((char) ch);
}
fr.close();