我有以下代码。我不明白为什么它不起作用。
我非常感谢您的帮助。
import java.util.Scanner;
import java.io.*;
class ReadFiles {
String [] codes = new String[99];
int i = 0;
private Scanner readCodes;
public void openCodesFile() {
try {
readCodes = new Scanner(new File("C:/Users/Carlo/Desktop/Files/codes.txt"));
} catch (Exception e) {
System.out.println("Could not locate the data file!");
}
}
public void readCodesFile() {
while(readCodes.hasNext()) {
codes[i] = readCodes.nextLine();
i++;
System.out.println(codes[i]);
}
}
public void closeCodesFile() {
readCodes.close();
}
}
class NewHardware {
public static void main(String[] args) {
ReadFiles codesRead = new ReadFiles();
codesRead.openCodesFile();
codesRead.readCodesFile();
codesRead.closeCodesFile();
}
}
输出会多次输出“null”。
另外,我不仅希望能够打印出代码,而且还可以在类NewHardware中使用codes数组并对其进行操作(打印出来,截断它等等)。
我正在考虑使用readCodesFile()执行以下操作:
public String readCodesFile() {
while(readCodes.hasNext()) {
codes[i] = readCodes.nextLine();
i++;
System.out.println(codes[i]);
}
return (codes[i]);
}
还是有些东西,但是还没有奏效。我在正确的轨道上吗?
哦,只想补充一下,文本包含以下内容:
G22
K13
S21
I30
H15
N23
L33
E19
U49
编辑:
感谢下面的Tony和Churk帮助我实现我的愚蠢。我接受Tony的回答基本上是因为他挑战了我的思考,但是Churk的回答同样有价值。
对于我的问题的第二部分(在这里我询问了如何在NewHardware类中使用它),我做了以下工作:
class NewHardware {
public static void main(String[] args) {
ReadFiles codesRead = new ReadFiles();
codesRead.openCodesFile();
codesRead.readCodesFile();
for (int i = 0; i < 9; i++) {
System.out.println("\n\n" + codesRead.codes[i]);
}
codesRead.closeCodesFile();
}
}
当然,这不是最终的程序代码,但这帮助我获得了基本思想。希望这对其他人也有帮助。
最佳答案
仔细查看您的readCodesFile()方法。看每一行。到底在做什么你能给我们解释一下吗?