Java基础 转换流

 

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

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

 

转换流的作用:

1. 指定字符集读写数据(JDK11开始被淘汰)

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();

 

posted @ 2023-10-24 22:23  1stzz1  阅读(28)  评论(0)    收藏  举报