黑马程序员技术交流社区

标题: IO的一个小问题 [打印本页]

作者: 高铭    时间: 2012-4-15 18:06
标题: IO的一个小问题
读取流时
什么时候定义 String line =null;   while(line.....!=null){....}
和什么时候定义  byte[] buf = new byte[1024]; int len =0; while(len....!=-1){....}

这样解释对不?
  (字符流)
文本文件 一行一行读取 就用String   
(字节流)
图片 什么的等等 就用 byte[] 这样的 (字节流)  是么?
这点有点模糊   
作者: 王永旺    时间: 2012-4-15 18:24
字符流和字节流是每次读取的数据单位不同,字节流每次读取一个字节,字符流每次读取两个字节。
另外需要注意如果读中文的话只能用字符流,字节流读出来全是问号。
作者: 陈扬    时间: 2012-4-15 19:03
程序中的输入输出都是以流的形式保存的,流中保存的实际上全都是字节文件。
1 、二进制格式(只要不能确定是纯文本的)使用字节流
2 、纯文本格式(含纯英文与汉字或其他编码方式);使用字符流
作者: 李震 李震 李震    时间: 2012-4-15 19:15
文本文件 一行一行读取 就用String   
嗯,是这样的,因为是读取的一行,说要返回的是String
字节流,就是传输数据的时候,一个一个字节的传输,
字符流,就是以一个字符来传输。
只要是操作文件数据的都用字符流。
字节流操作的就是,与媒体相关的东西。如文本, 当然也能可以用字节流, 但是比较麻烦, 还要做转换动作, 不建议使用

作者: 马强    时间: 2012-4-15 20:03
String line =null;   while(line.....!=null){....}   //...里是 readline ,而readline方法是字符流 bufferedread的特有方法,如果想要用这个方法
                                               首先需要转到字符流,之后用这个修饰,毕老师里的例子就有一个为了用这个readline而字节转字符
byte[] buf = new byte[1024]; int len =0; while(len....!=-1){....}  // 字节流读取,字节读取的类里,基本都可以用这个,只要不返回-1就读一个写一个






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