转换流

InputStreamReader 和 OutputStreamWriter
处理流
用于将字节流转化成字符流,字符流与字节流之间的桥梁
InputStreamReader 的作用是把 InputStream 转换成 Reader
OutputStreamWriter 的作用是把 OutputStream 转换成 Writer

存在将字节流转换成字符流的转换流,因为字符流操作文本
更简单
不存在把字符流转换成字节流的转换流,因为没有必要
System.in 代表标准输入,即键盘输入,是 InputStream 的实

 1 import java.io.BufferedReader;
 2 import java.io.BufferedWriter;
 3 import java.io.FileNotFoundException;
 4 import java.io.FileOutputStream;
 5 import java.io.IOException;
 6 import java.io.InputStream;
 7 import java.io.InputStreamReader;
 8 import java.io.OutputStreamWriter;
 9 import java.io.UnsupportedEncodingException;
10 
11 public class TestInputStreamReader {
12 
13     public static void main(String[] args) {
14         //任务需求,从键盘获取数据,写入磁盘文件
15         //(3)提高读取效率
16         BufferedReader br = null;
17         //(4)提高写入效率
18         BufferedWriter bw = null;
19         try {
20             //(1)数据源是标准的输入设备,键盘System.in
21             InputStream is = System.in;
22             //(2)需要使用转换流,转换成字符流
23             InputStreamReader isr = new InputStreamReader(is,"gbk");
24             br = new BufferedReader(isr);
25             bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("D:\\systein.txt")));
26             //(5)写入磁盘文件
27             String line = null;
28             while(!"over".equals((line=br.readLine()))) {//键盘输入over表示结束
29                 bw.write(line);
30                 bw.newLine();
31                 bw.flush();
32             }
33         } catch (UnsupportedEncodingException e) {
34             // TODO 自动生成的 catch 块
35             e.printStackTrace();
36         } catch (FileNotFoundException e) {
37             // TODO 自动生成的 catch 块
38             e.printStackTrace();
39         } catch (IOException e) {
40             // TODO 自动生成的 catch 块
41             e.printStackTrace();
42         }finally {
43             //(6)关闭
44             if(bw != null) {
45                 try {
46                     bw.close();
47                 } catch (IOException e) {
48                     // TODO 自动生成的 catch 块
49                     e.printStackTrace();
50                 }
51             }
52             if(br != null) {
53                 try {
54                     br.close();
55                 } catch (IOException e) {
56                     // TODO 自动生成的 catch 块
57                     e.printStackTrace();
58                 }
59             }
60         }
61     }
62 }
View Code

相关文章:

  • 2021-12-23
  • 2021-12-10
  • 2021-08-23
  • 2021-12-25
  • 2021-11-10
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-04-05
  • 2022-12-23
  • 2021-12-07
  • 2021-12-06
  • 2021-11-05
  • 2022-12-23
  • 2021-06-06
相关资源
相似解决方案