黑马程序员技术交流社区
标题:
bufferreader 与数组的疑问
[打印本页]
作者:
花生壳
时间:
2014-2-9 10:42
标题:
bufferreader 与数组的疑问
还在总结
1.定义了bufferreader 之后,读流用不用定义一个数组来存到 bufferreader中的数据???
BufferedReader bReader=new BufferedReader(new InputStreamReader(new FileInputStream("d:/1.txt")));
char[] buf=new char[100];
//需要定义数组么?有点印象。
bufferdreader 包含数组了,
int ch=0;
while((ch=bReader.read(buf))!=-1){
String string=new String(buf,0,ch);
System.out.println(string);
}
这样写总感觉数组是多余的!
作者:
kira
时间:
2014-2-9 10:58
本帖最后由 kira 于 2014-2-9 11:01 编辑
你这样写肯定是不对的 BufferedReader里面是传一个reader(FileReader)因为就是源就是文本
所以不需要转换流 而且你的FileInputStream 你要定义的话也要是字节数组 而不是char
既然定义了char就明确其为字符数组
定义字符数组是为了调用read方法的时候记录一个int 而它不等于负一就可以一直读取
我修改了下代码
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Demo {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader bReader= new BufferedReader(new FileReader("d://1.txt"));
char[] ch=new char[100]; //建议命名要统一化
int len=0;
while((len=bReader.read(ch))!=-1){
System.out.println(new String(ch,0,len));
}
bReader.close();//关流
}
}
复制代码
作者:
长石
时间:
2014-2-9 11:16
BufferedReader中有readline()方法 直接读一整行的 这个比较方便
BufferedReader bReader=new BufferedReader(new InputStreamReader(new FileInputStream("d:/1.txt")));
String line = null;
while((line =bReader.readline() )!=null){
String string=line;
System.out.println(string);
}
这样就行了
作者:
→★稻草人☆
时间:
2014-2-9 11:23
建议用上楼的BufferedReader中的readLine()方法,因为它是一次读取一行,比一个字节一个字节读的要快。
作者:
徐青松
时间:
2014-2-15 21:42
学习了!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2