A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 石好强 中级黑马   /  2012-4-12 10:29  /  1628 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文



  1. import java.io.*;
  2. class FileReaderDemo
  3. {
  4. public static void main(String[] args) throws IOException
  5. {
  6. FileReader fr =null;
  7. try
  8. {
  9. fr= new FileReader("demo.txt");

  10. int ch = 0;
  11. while(-1!=fr.read())
  12. {
  13. ch = fr.read();
  14. System.out.print((char)ch);
  15. }

  16. }

  17. catch(IOException e)
  18. {
  19. System.out.println(e.toString());
  20. }

  21. finally
  22. {
  23. try
  24. {
  25. if(fr!=null)
  26. fr.close();
  27. }
  28. catch(IOException e)
  29. {
  30. System.out.println(e.toString());
  31. }
  32. }


  33. }
  34. }
复制代码
以上读取代码,读“demo.txt”中的文件,读到的结果是隔字符读取,例如我demo.txt中存放的是 “abcdef”,而程序读取出来却是 "bdf",和老师讲的思路一样的啊。哪出错了,请帮忙看下。。。

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

4 个回复

倒序浏览
import java.io.*;
class FileReaderDemo
{
public static void main(String[] args) throws IOException
{
FileReader fr =null;
try
{
fr= new FileReader("demo.txt");

int ch = 0;
while ((ch =fr.read())!=-1) //while循环改成这样就行了
//while(-1!=fr.read())
{
//ch = fr.read();
System.out.print((char)ch);
}

}

catch(IOException e)
{
System.out.println(e.toString());
}

finally
{
try
{
if(fr!=null)
fr.close();
}
catch(IOException e)
{
System.out.println(e.toString());
}
}


}
}

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
import java.io.*;
class FileReaderDemo
{
public static void main(String[] args) throws IOException
{
FileReader fr =null;
try
{
fr= new FileReader("x.txt");


char[] c=new char[1024];


int ch = 0;
while((ch=fr.read(c))!=-1)//我习惯这样写
{

System.out.println(new String(c,0,ch));ch = fr.read();


}


}

catch(IOException e)
{
System.out.println(e.toString());
}

finally
{
try
{
if(fr!=null)
fr.close();
}
catch(IOException e)
{
System.out.println(e.toString());
}
}


}
}



改动后就是上面的 红色部分了,加油

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
//while(-1!=fr.read())
要多仔细认真看看代码啊  朋友。。。
回复 使用道具 举报
谢谢各位了,看到了fr.read()调用2次。改成:while(-1!=ch)就好了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马