StringReader BufferedReader

StringBufferInputStream 

1)StringBufferInputStream是jdk1.0的类,他对某些编码的字符不能很好的转化为字节,所以在1.0之后就淘汰了。

2)淘汰的类,尽量少用,如果需要时尽量采用同等类型的类替换。

3)字节流,从类名可以看出其父类是InputStream,也就是说他是字节流的一种装饰。

StringReader

1)弥补StringBufferInputStream的不足而产生的,他是JDK中StringBufferInputStream的替代品。

2)字符流,父类为Reader,相对于BufferedReader有所不同,原因是StringReader注重的是字符,而BufferedReader注重的是缓存。

BufferedReader

1)缓存流,项目中使用最多的,从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。

2)Reader的子类,同样是个字符流的装饰品。


总结:

项目中极少使用字符流读取文件数据,也很少把一个字符串放在字符流当中,前者不用是因为我们不知道文件的字符编码格式,所以如果采用字符流去读取一个不知道编码格式的文件,那么随时可能乱码;而后者不使用的话是因为直接对字符串操作更加简单。

那么如何处理文件的编码呢?

1)通过明确的编码格式

InputStreamReader isr = new InputStreamReader(new FileInputStream(file),charset);

2)通过字节流

InputStream 获取字节之后,然后通过String的构造方法进行字节转码,转为指定格式的字符串,记住字节是不会有乱码的!


转载于:https://my.oschina.net/heweipo/blog/408239

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值