gpt4 book ai didi

java - 读取文件并放入数组

转载 作者:行者123 更新时间:2023-12-02 07:18:55 25 4
gpt4 key购买 nike

我在读取文件并将其内容放入数组时遇到问题。控制台说我的错误在这里:

Exception in thread "main" java.lang.NullPointerException
at readFile.readFile(readFile.java:23)
at apples.main(apples.java:6)

但是我现在不知道如何修复它。

import java.util.*;
import java.lang.*;
import java.io.*;


public class readFile {
private Scanner x;

public void openfile(){
try{
x = new Scanner( new File("/Users/Zachary/Desktop/chinese.txt"));

}
catch (IOException e){
System.out.println("you failed foo");
}
}
public void readFile(){
int y = 0;
int[] nums = null;
while(x.hasNext()){
for(y=0; y<10;y++) {
nums[y] = x.nextInt();
}
System.out.println(nums[y]);
}
}
public void closeFile(){
x.close();
}
}



public class apples {
public static void main (String[]args){
readFile r = new readFile();
r.openfile();
r.readFile();
r.closeFile();

}
}

最佳答案

您似乎在以下位置出现 NullPointerException:

nums[y] = x.nextInt();

这是因为这一行:

int[] nums = null;

它是空的,所以你不能在里面放东西。这是一个简单的修复:

int[] nums = new int[10];

上面的代码将初始化 nums ,使其成为一个空(不是真的 - 它实际上填充了 0)数组,如下所示:

---------------------
|0|0|0|0|0|0|0|0|0|0|
---------------------

如果您希望能够向其中添加任意数量的数字,则需要 ArrayList (link) .

此外,此代码将引发错误:

for(y=0; y<10;y++) {
nums[y] = x.nextInt();
}
System.out.println(nums[y]);

那是因为您的System.out.println不知道y是什么。只需将 System.out.println 移至 for 循环中,这样它就可以“看到”y。 (这称为范围)

关于java - 读取文件并放入数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14514252/

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