gpt4 book ai didi

java - try catch 数组吗?

转载 作者:行者123 更新时间:2023-12-02 05:10:13 25 4
gpt4 key购买 nike

当我尝试使用该数组时,出现 nullPointerException。我该如何解决?我必须计算 txt 文件中的行数并将其用作数组大小。

public static void main(String[] args) {
String accountNum, password, give;
int count=0, menuChoice,size=0;
String[] validAccounts=null;

//gets the data from the file and stores into an array
try {
Scanner file= new Scanner (new FileReader("ATMdata.txt"));

//counts the lines in the text file

while (file.hasNextLine()) {
size++;
String theLine = file.nextLine();
}

validAccounts= new String[size];

for ( int countFile=0; count==size; countFile++) {
validAccounts[countFile]= file.nextLine();
}
}
catch(Exception e) {
System.out.println("Error processing file.");
}

最佳答案

您的最后一个 for 循环的测试条件不好,

for ( int countFile=0; count==size; countFile++) {
validAccounts[countFile]= file.nextLine();
}

应该使用countFile(不是count)并且小于size(否则你的循环体不会被输入)

for (int countFile=0; countFile < size; countFile++) {
validAccounts[countFile]= file.nextLine();
}

validAccounts 中的每个元素一样,默认为 null

您也没有关闭您的扫描仪(并且您位于文件末尾)。我建议您使用像 List 这样的集合,例如

try (Scanner file = new Scanner(new File(
System.getProperty("user.home"), "ATMdata.txt"))) {
List<String> validAccounts = new ArrayList<>();
while (file.hasNextLine()) {
validAccounts.add(file.nextLine());
}
System.out.printf("%d accounts%n", validAccounts.size());
System.out.println(validAccounts);
} catch (Exception e) {
e.printStackTrace();
}

关于java - try catch 数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27392832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com