黑马程序员_IO(以字符为导向的 stream Reader/Writer)

以 Unicode 字符为导向的 stream 包括下面几种类型:

2.  Writer

 

2.1    CharArrayWrite : 与 ByteArrayOutputStream 对应

2.2   StringWrite :无与之对应的以字节为导向的 stream

2.3  FileWrite : 与 FileOutputStream 对应

2.4  PipedWrite :与 PipedOutputStream 对应

 

3、两种不同导向的 stream 之间的转换  

3.1

InputStreamReader 和 OutputStreamReader 

把一个以字节为导向的 stream 转换成一个以字符为导向的 stream 

InputStreamReader 类是从字节流到字符流的桥梁:它读入字节,并根据指定的编码方式,将之转换为字符流。

使用的编码方式可能由名称指定,或平台可接受的缺省编码方式。

InputStreamReader 的 read() 方法之一的每次调用,可能促使从基本字节输入流中读取一个或多个字节。

为了达到更高效率,考虑用 BufferedReader 封装 InputStreamReader 

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

例如: // 实现从键盘输入一个整数

[java] view plaincopy

1. String s = null;             

2. InputStreamReader re = new InputStreamReader(System.in);  

3.               BufferedReader br = new BufferedReader(re);  

4.               try {  

5.               s = br.readLine();  

6.               System.out.println("s= " + Integer.parseInt(s));  

7.               br.close();  

8.               }  

9.               catch (IOException e)  

10.               {  

11.               e.printStackTrace();  

12.               }  

13.               catch (NumberFormatException e)// 当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。  

14.               {  

15.               System.out.println(输入的不是数字 ");  

16.               }  


InputStreamReader(InputStream) 用缺省的字符编码方式,创建一个 InputStreamReader 

InputStreamReader(InputStream, String) 用已命名的字符编码方式,创建一个 InputStreamReader 

 

OutputStreamWriter 将多个字符写入到一个输出流,根据指定的字符编码将多个字符转换为字节。

每个 OutputStreamWriter 合并它自己的 CharToByteConverter, 因而是从字符流到字节流的桥梁。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值