所以我试图从文本文件中取一系列“得分”放入数组,然后按顺序排序,四行,并编写其他方法以获得最高,最低,平均等。 println命令在那里,但我还没有编写方法。我一整天都在工作,我开始迷惑自己,现在我在main方法中遇到了NullPointerException错误。有什么帮助吗?
package arrayops1d;
import java.io.*;
import java.util.*;
public class ArrayOps1D {
static int scores[];
public static void main(String[] args) throws Exception{
FileReader file = new FileReader("C:/Users/Steve/Documents/"
+ "NetBeansProjects/ArrayOps1D/Scores.txt");
BufferedReader reader = new BufferedReader(file);
String scores = "";
String line = reader.readLine();
while (line != null){
scores += line;
line = reader.readLine();
}
System.out.println(scores);
System.out.println(getTotal());
System.out.println(getAverage());
System.out.println(getHighest());
System.out.println(getLowest());
System.out.println(getMedian());
System.out.println(getPosition());
System.out.println(getDeviations);
System.out.println(getStdDev);
}
答案 0 :(得分:0)
您的代码首次出现问题:
在您的文件路径中,相反使用/
,如果您的程序想要在不同的平台上运行,则必须使用\\
或更好File.separator
。
如果不这样做,您将拥有java.io.FileNotFoundException
您正在逐行阅读,因此您可以使用split
功能并使用Integer.paraseInt
或Float.parseFloat
转换每个已拆分的元素并添加到您的数组中
答案 1 :(得分:0)
int
值读取为Integer
数组
Integer[] scores = null;
File file = new File("C:/Users/Steve/Documents/"
+ "NetBeansProjects/ArrayOps1D/Scores.txt");
if (file.exists() && file.canRead()) {
try {
List<Integer> al = new ArrayList<>();
Scanner scanner = new Scanner(file);
while (scanner.hasNext()) {
if (scanner.hasNextInt()) {
al.add(scanner.nextInt());
} else {
System.out.println("Not an int: " + scanner.next());
}
}
scores = al.toArray(new Integer[al.size()]);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
} else {
System.out.println("Can't find file: " + file.getPath());
}
if (scores != null) {
System.out.println("Scores Read: " + Arrays.toString(scores));
}