Java 从计算机读取文件

Java 从计算机读取文件,java,Java,现在我有一个错误: 线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常:4 在Lotto1.main(Lotto1.java:37) 第37行:arr[count][0]=s.next()+“”+s.next() 您没有将正确的路径放入FileReader,而只是将其放入文件f中,您可以将f传递到FileReader中,而不是重复该路径: File f = new File("D:\\database_lotto.txt"); [...] B

现在我有一个错误:

线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常:4 在Lotto1.main(Lotto1.java:37)

第37行:arr[count][0]=s.next()+“”+s.next()


您没有将正确的路径放入FileReader,而只是将其放入文件f中,您可以将f传递到FileReader中,而不是重复该路径:

File f = new File("D:\\database_lotto.txt");
[...]
BufferedReader reader = new BufferedReader(new FileReader(f));

将文件放在运行代码的同一文件夹中,或将文件传递给文件读取器,而不是文件名。。所以做
BufferedReader reader=newbufferedreader(newfilereader(f))
为什么要以两种不同的方式(扫描程序和文件读取器)读取两次看似相同的文件?@PaulGrime从技术上讲,他正在尝试读取一个文件并打开另一个文件:不就是用于读取的扫描程序(s.hasNextLine()…)和用于读取的文件读取器(通过reader.readLine()…)嗯,也许他想读一个文件,然后写另一个?他会告诉我们:)我更改了它,现在我有另一个错误:线程“main”java.lang.ArrayIndexOutOfBoundsException:4在Lotto1.main(Lotto1.java:37)第37行:arr[count][0]=s.next()+“”+s.next();每次调用“s.next()”都会使内部“行索引”前进,这可能是导致错误的原因。您应该在每个循环回合中只调用一次“s.next()”。我更改了它,但仍然存在相同的问题:(以下是示例txt文件:每日百万3 1.00爱尔兰乐透2 1.50欧元百万1 2.00百万富翁抽奖1 20.00
File f = new File("D:\\database_lotto.txt");
[...]
BufferedReader reader = new BufferedReader(new FileReader(f));