黑马程序员技术交流社区

标题: 关于流的转换问题 [打印本页]

作者: 黎阳05    时间: 2013-5-2 15:00
标题: 关于流的转换问题
本帖最后由 黎阳05 于 2013-5-2 20:27 编辑

字符流向字节流,字节流向字符流是怎么转换的,一直没怎么搞懂,干脆都用字节流不是很方便么?

作者: 原满    时间: 2013-5-2 15:36
InputStreamReader 将字节输入流转换成字符输入流  
OutputStreamWriter 将字节输出流转换成字符输出流
java没有提供将字符流转换成字节流的转换流
字节流比字符流的使用范围更广,字节流转换成字符流只是为了处理文本内容更方便, 所以没必要把字符流转换成字节流
作者: 孟群峰    时间: 2013-5-2 15:48
1,第一个问题,为什么有字符流?
字符流里面封装了字符集,可以把读取的字节自动查表转化为字符,方便字符的读写。
2,第二个问题,字节流向字符流怎么转换的?
以读取为例:字符流的底层是字节流,字符流把字节流读出的字节,通过默认或者设置的字符集,通过查表再返回,而不是字节流直接返回。
希望你懂了
作者: Jacky_Chen1990    时间: 2013-5-2 15:54
楼上说的很对。
我补充一些知识点:
字节流 为InputStream OutputStream
字符流 为Reader  Writer

举一个例子:
例如:读取文件 从字节流输入到字符流输入
定义一个字节流:
Java代码
FileInputStream fileInputStream = new FileInputStream("d:/text.txt");  // 定义一个指向D:/TEXT.TXT 的字节流   
  
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);   
//字节流转换成InputStreamReader   
  
BufferedReader bufferedReader = new BufferedReader(inputSteamReader);   
//InputStreamReader 转换成带缓存的bufferedReader  

可以把读出来的内容赋值给字符





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2