Java基础 转换流

发布时间 2023-10-24 22:27:07作者: 嘎嘎鸭2

 

转换流属于字符流的一员,本身也是一种高级流,用来包装基本流的。

转换流是 字符流 和 字节流 之间的桥梁

InputStreamReader 的作用是可以把 字节流 转换成 字符流;OutputStreamWriter 的作用是 把 字符流 转换成 字节流

 

如果说 字节流 里面想要使用 字符流 中的方法了,就可以使用 转换流 转一下

 

练习:

一、利用转换流按照指定字符编码读取数据

1. JDK11以前:

InputStreamReader isr = new InputStreamReader(new FileInputStream("E:\\Java基础资料\\a.txt"), "UTF-8");
//读取数据
while (true) {
int ch = isr.read();
if (ch == -1) break;
System.out.print((char)ch);
}

isr.close();

2. JDK11开始:

FileReader fr = new FileReader("E:\\Java基础资料\\a.txt", Charset.forName("UTF-8"));

while (true) {
int ch = fr.read();
if (ch == -1) break;
System.out.print((char)ch);
}

fr.close();

 

二、利用转换流按照指定字符编码写出

1. JDK11以前:

OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("E:\\Java基础资料\\b.txt"), "UTF-8");
osw.write("你好");
osw.close();

2. JDK11开始:

FileWriter fw = new FileWriter("E:\\Java基础资料\\b.txt", Charset.forName("UTF-8"));
fw.write("你好");
fw.close();

水水水水