Txt文件输入错误Java
我发现了错误
Exception in thread "main" java.lang.NumberFormatException: For input string: "scores.txt"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1222)
at java.lang.Double.parseDouble(Double.java:510)
at ExamAverage.main(ExamAverage.java:30)
C:\Users\Peter\AppData\Local\Temp\codecomp5461808896109186034.xml:312: Java returned: 1
对于我下面列出的代码,这个错误意味着什么?我试图从一个给定的文本文件路径逐行输出,并以特定的格式输出
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.io.PrintWriter;
public class ExamAverage
{
public static void main(String[] args)
throws FileNotFoundException
{
String inputFileName = "scores.txt";
String outputFileName = "examScoreAverage.txt";
Scanner console = new Scanner(System.in);
Scanner in = new Scanner(inputFileName);
PrintWriter out = new PrintWriter(outputFileName);
int TestNumber = 1;
double totalPoints = 0;
double avg = 0;
double test = 0;
while (in.hasNextLine())
{
String line = in.nextLine();
test = Double.parseDouble(line);
out.println("Score" + TestNumber + " : " + test);
totalPoints += test;
TestNumber++;
}
avg = totalPoints/TestNumber;
out.println("Number of scores read: " + TestNumber );
out.println("Average Score " + avg );
in.close();
out.close();
} }
# 1 楼答案
如下所示:
line
包含"scores.txt"
而不是文件的内容# 2 楼答案
你的in-Scanner不是从文本文件中读取,它实际上是读取字符串文字“scores.txt”,然后试图将“scores.txt”解析为双精度。在构造扫描仪读取文件时,请确保传递的是文件,而不是文件名。它看起来像这样:
只需确保将正确的文件路径传递到文件,而不仅仅是文件名
# 3 楼答案
您正在尝试格式化字符串数据类型中的数字。java运行时向您展示了一个问题:java。lang.NumberFormatException:输入字符串:“scores.txt”
我没有运行代码,但对其进行了调试,并将字符串数字值转换为正确的数据类型数字格式,它将正常工作
# 4 楼答案
这一行:
尝试从line变量创建一个double。您得到的错误是因为line变量中存在数字以外的内容。在调用
parseDouble()
之前,请尝试打印行# 5 楼答案
http://download.oracle.com/javase/6/docs/api/java/util/Scanner.html
似乎您认为可以将文件名传递给
Scanner
并将其打开。 没有Scanner
的构造函数以您认为的方式将文件名作为参数。你所拥有的是一台扫描仪,它正在读取String
“scores.txt”JavaDocs向您展示了如何正确使用
Scanner
类来读取文件: