Keane_T
2015-04-16 13:31
采纳率: 25%
浏览 1.9k
已采纳

Java中文件读取的问题,急求

如图程序无法运行,debug提示是string line=rd.readLine();无法执行,求解惑。
java.util.为什么没有使用,还有LicensePlateGame也没有执行,求帮助!

图片说明

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • Dean_Deng 2015-04-22 07:29
    已采纳

    IO阻塞是你在读入的时候没有读指定文件,一直卡在那边,输出也无法输出。
    我把你的代码简化了下,测了下,只要可以读取到DICTIONARY_FILE,程序就可以正常运行。
    建议你在catch(IOException e)这一行和Throw new ErrorException(e);着两行打上断点,
    看程序是不是rd.read()或者rd.readLine()就已经发生异常了,根本就没执行下去就跳到catch块去了。

    打赏 评论
  • Dean_Deng 2015-04-16 14:06

    首先你的代码似乎没有保存,来外怀疑是否IO阻塞,你的程序可能在等待读取文件,
    DICTIONARY_FILE文件是否存在,程序是不是已经出错,

    打赏 评论
  • 扯线木偶人 2015-04-16 16:01

    1)rd.readLine()试一下判断一下再读取数据
    while(rd.read() != -1){
    //读取数据
    String line = rd.readLine();
    println(line);
    }
    2)第一个循环不会跳出来么?也没有sleep,那可能会卡住也不输出了
    导包Ctrl+shift+O自动导入,util包有没使用,按一下这个快捷键就知道了,没的话是不会导入的

    打赏 评论
  • 清水依恋成 2015-04-16 16:01

    按理说while(true)这样的格式很危险,很容易出问题,比如按照你现在的代码,如果文件处于“保护写”(不是非保护写)状态咋办,一直死循环下去了。

    打赏 评论
  • 东东东雷 2015-04-17 02:50

    不明白你写的代码: (没保存 就不说了……)
    1、第一个 while(true) 是怎么跳出循环的,不解……
    2、第二个 while(true) {……} 不如写成
    String line = "";
    while((line = br.readline())!= null) {……}
    你这么写不累吗?

    代码在改改,应该可以的……

    打赏 评论
  • beaconD 2015-04-17 05:07

    你定义的文件路径只有文件名,没有具体路径,你能取到这个文件吗?

    打赏 评论
  • qq_22002307 2015-04-17 15:04

    是不是 那个文件的读取要一个char[]数组接收,然后再判断是否等于-1
    如 char[] data = new char[1024];
    while((data=rd.read())!= -1){}

    打赏 评论

相关推荐 更多相似问题