转换流的由来: 字符流与字节流之间的桥梁 方便了字符流与字节流之间的操作
转换流的应用: 字节流中的数据都是字符时,转成字符流操作更高效。
转换流:
InputStreamReader:字节到字符的桥梁,解码。
OutputStreamWriter:字符到字节的桥梁,编码。
InputStreamReader是字节流通向字符流的桥梁。
示例1:
使用字节流读取一个中文字符需要读取两次,因为一个中文字符由两个字节组成,而使用字符流只需读取一次。
System.out的类型是PrintStream,属于OutputStream类别。
OutputStreamReader是字符流通向字节流的桥梁。
示例2:
转换流的应用: 字节流中的数据都是字符时,转成字符流操作更高效。
转换流:
InputStreamReader:字节到字符的桥梁,解码。
OutputStreamWriter:字符到字节的桥梁,编码。
InputStreamReader是字节流通向字符流的桥梁。
示例1:
使用字节流读取一个中文字符需要读取两次,因为一个中文字符由两个字节组成,而使用字符流只需读取一次。
System.out的类型是PrintStream,属于OutputStream类别。
OutputStreamReader是字符流通向字节流的桥梁。
示例2:
1. import java.io.BufferedReader;
2. import java.io.BufferedWriter;
3. import java.io.IOException;
4. import java.io.InputStream;
5. import java.io.InputStreamReader;
6. import java.io.OutputStream;
7. import java.io.OutputStreamWriter;
08.
9. public class TransStreamDemo{
10.
11. public static void main(String[] args) throws IOException {
12.
13. InputStream in = System.in;
14.
15. InputStreamReader isr = new InputStreamReader(in);
16.
17. //字符流
18. BufferedReader bufr = new BufferedReader(isr);
19.
20. //字节流,字节数据
21. OutputStream out = System.out;
22.
23. //数据到了osw,目的地out控制台
24. OutputStreamWriter osw = new OutputStreamWriter(out);
25.
26. BufferedWriter bufw = new BufferedWriter(osw);
27.
28. String line = null;
29.
30. while((line = bufr.readLine()) != null){
31. if("over" .equals(line))
32. break;
33.
34. //将字符数据用缓冲区对象将数据写入缓冲区,目的地是osw
35. bufw.write(line.toUpperCase());
36. bufw.newLine();
37. //osw.write(line.toUpperCase() + "\r\n");可以替代上面两行代码
38. bufw.flush();
39. }
40. }
41. }