gpt4 book ai didi

exception - 如何在线程 “main” java.lang.NullPointerException中修复异常

转载 作者:行者123 更新时间:2023-12-02 11:02:35 24 4
gpt4 key购买 nike

运行代码时出现此错误,但编译时却没有。

Exception in thread "main" java.lang.NullPointerException
at java.util.StringTokenizer.<init>(StringTokenizer.java:199)
at java.util.StringTokenizer.<init>(StringTokenizer.java:221)
at WillinsLaMarkusFileInputOutput.main(WillinsLaMarkusFileInputOutput.java:23)

这是我完整的代码
import java.io.*;

public class WillinsLaMarkusFileInputOutput {

public static void main(String[] args) throws IOException {
/* open the files */
// Scanner sc = new Scanner(System.in);
BufferedReader r = new BufferedReader(new FileReader("input.txt"));
BufferedWriter w = new BufferedWriter(new FileWriter("output.txt"));

float[] values = new float[10];
String str = r.readLine();
int i = 0;
float sum = 0.0f, avg = 0.0f;
/* tokenize the string into floats separated by spaces */
java.util.StringTokenizer tk = new java.util.StringTokenizer(str, " ");
while (tk.hasMoreElements()) {
values[i] = Float.valueOf(tk.nextToken()).floatValue();
/* compute sum */
sum += values[i];
i++;
}

/* calculate average */
avg = sum / 10.0f;

/* write results to output.txt */
w.write("Sum: " + sum);
w.newLine();
w.write("Average: " + avg);
w.flush();

/* close the files */
r.close();
w.close();
}
}

对于如何解决这个问题,有任何的建议吗 ?

最佳答案

异常来自此行:

java.util.StringTokenizer tk = new java.util.StringTokenizer(str, " ");
因此,当此构造函数可能抛出 NullPointerException时,首先让我们阅读 documentation:

public StringTokenizer(String str, String delim)

Throws:

NullPointerException - if str is null


精细。这意味着 strnullstr在以下行中分配:
String str = r.readLine();
现在,当 r.readLine() 可能返回 null时,您应该阅读文档:

Returns:

A String containing the contents of the line, not including any line-termination characters, or null if the end of the stream has been reached


因此,它表明已到达文件末尾。由于这是从该文件读取内容的第一次尝试,因此您似乎正在读取一个空文件。
通常,仔细阅读文档可能会极大地帮助您理解您的程序为什么不起作用。

关于exception - 如何在线程 “main” java.lang.NullPointerException中修复异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33006057/

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