将文本文件读入Java数组

时间:2014-08-31 23:10:37

标签: java arrays text

所以我试图从文本文件中取一系列“得分”放入数组,然后按顺序排序,四行,并编写其他方法以获得最高,最低,平均等。 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);


}

2 个答案:

答案 0 :(得分:0)

您的代码首次出现问题: 在您的文件路径中,相反使用/,如果您的程序想要在不同的平台上运行,则必须使用\\或更好File.separator

如果不这样做,您将拥有java.io.FileNotFoundException

您正在逐行阅读,因此您可以使用split功能并使用Integer.paraseIntFloat.parseFloat转换每个已拆分的元素并添加到您的数组中

  1. How to use Split in Java
  2. How to convert String to int

答案 1 :(得分:0)

通过以下方法,您可以使用ScannerList -

将文件中的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));
}