黑马程序员技术交流社区
标题:
BufferedReader中的疑问
[打印本页]
作者:
李万海
时间:
2013-3-26 20:33
标题:
BufferedReader中的疑问
本帖最后由 李万海 于 2013-3-26 21:53 编辑
while(true)
{
BufferedReader bfr= new BufferedReader(new InputStreamReader(System.io));
String strLine = bfr.readLine();
if(strLine != null)
{
System.out.println("hi:" + strLine );
}
else
{
return;
}
bfr.close();
}
复制代码
为什么在这过程中会出现数据丢失的情况?
作者:
HM谢文辉
时间:
2013-3-26 21:08
import java.io.*;
class Test121 {
public static void main(String[] args) {
BufferedReader bfr = null;
try {
while (true) {
bfr = new BufferedReader(new InputStreamReader(System.in)); //此处输入不应改为System.io
String strLine = bfr.readLine();
if (strLine != null) {
System.out.println("hi:" + strLine);
} else {
return;
}
}
}
catch (IOException e) {
System.out.println(e.toString());
}
finally {
try {
bfr.close();
} catch (IOException e) {
System.out.println("关闭异常");
}
}
}
}
复制代码
作者:
刘子义
时间:
2013-3-26 21:17
每次循环都创建一个新的BufferedReader对象是不正确的,应该把第3行代码放到while循环前,再把关闭流的第13行代码放到循环后。
作者:
lucy198921
时间:
2013-3-26 21:26
FileReader读取文件的过程中,FileReader继承了InputStreamReader,但并没有实现父类中带字符集参数的构造函数,所以FileReader只能按系统默认的字符集来解码,然后在UTF-8 -> GBK -> UTF-8的过程中编码出现损失,造成数据丢失.
作者:
疯狂程序
时间:
2013-3-26 23:39
使用BufferedReader要注意2点
1.一定要导包java.io.*;
2.一定要抛出异常,所谓异常就是可以预测的错误
你的问题很明显,没有抛异常
作者:
陈丽莉
时间:
2013-3-27 11:52
若还有问题,继续追问; 没有的话,尽量及时将帖子分类改成【已解决】~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2