问题描述
- Java中文件读取的问题,急求
-
如图程序无法运行,debug提示是string line=rd.readLine();无法执行,求解惑。
java.util.为什么没有使用,还有LicensePlateGame也没有执行,求帮助!
解决方案
IO阻塞是你在读入的时候没有读指定文件,一直卡在那边,输出也无法输出。
我把你的代码简化了下,测了下,只要可以读取到DICTIONARY_FILE,程序就可以正常运行。
建议你在catch(IOException e)这一行和Throw new ErrorException(e);着两行打上断点,
看程序是不是rd.read()或者rd.readLine()就已经发生异常了,根本就没执行下去就跳到catch块去了。
解决方案二:
首先你的代码似乎没有保存,来外怀疑是否IO阻塞,你的程序可能在等待读取文件,
DICTIONARY_FILE文件是否存在,程序是不是已经出错,
解决方案三:
1)rd.readLine()试一下判断一下再读取数据
while(rd.read() != -1){
//读取数据
String line = rd.readLine();
println(line);
}
2)第一个循环不会跳出来么?也没有sleep,那可能会卡住也不输出了
导包Ctrl+shift+O自动导入,util包有没使用,按一下这个快捷键就知道了,没的话是不会导入的
解决方案四:
按理说while(true)这样的格式很危险,很容易出问题,比如按照你现在的代码,如果文件处于“保护写”(不是非保护写)状态咋办,一直死循环下去了。
解决方案五:
不明白你写的代码: (没保存 就不说了……)
1、第一个 while(true) 是怎么跳出循环的,不解……
2、第二个 while(true) {……} 不如写成
String line = "";
while((line = br.readline())!= null) {……}
你这么写不累吗?
代码在改改,应该可以的……
解决方案六:
你定义的文件路径只有文件名,没有具体路径,你能取到这个文件吗?
解决方案七:
是不是 那个文件的读取要一个char[]数组接收,然后再判断是否等于-1
如 char[] data = new char[1024];
while((data=rd.read())!= -1){}