您的位置:首页 > 编程语言 > Java开发

[Java]标准输入流小问题

2016-03-15 14:51 615 查看
转载自http://gtianshu.blog.163.com/blog/static/4827738820108247435951

如有侵权请联系删除!

从一个有若干行的文件中依次读取各行,处理后输出,如果用以下方法,则会出现除第一行外行首字符丢失现象

String str = null;

br=new BufferedReader(new FileReader(fileName));

do{

str = buf.readLine());

}while(br.read()!=-1);

以下用法会使每行都少首字符

while(br.read() != -1){

str = br.readLine();

}

原因就在于br.read() != -1 这判断条件上。 因为在执行这个条件的时候其实它已经读取了一个字符了,然而在这里并没有对读取出来的这个字符做处理,所以会出现少一个字符,如果你这里写的是while(br.readLine()!=null)会出现隔一行少一行!

建议使用以下方法

String str = null;

while((str = br.readLine()) != null){

//System.out.println(str);//此时str就保存了一行字符串

}

这样应该就可以无字符丢失地得到一行了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: