如何从文本文件中读取输入并将这些输入放入Java中的ArrayList中?

时间:2017-01-17 16:44:09

标签: java string arraylist

所以我想在一个文本文件中读取一堆包含如下字符串的输入:

abc456
mnjk452
aaliee23345
poitt78

我想将每个输入放入一个数组列表中,并通过我的一个方法传递该arraylist。我该怎么做呢?目前在我的代码中,我试图看看我是否可以简单地打印出我的arraylist中的内容。以下是我的主要内容:

public static void main(String[] args) {
        if(args.length < 1) {
            System.out.println("Give me a file!");
        }

        String fname = args[0];

        ArrayList<String> coordinates = new ArrayList<String>();

        Scanner grid = new Scanner(fname);
        while(grid.hasNext()) {
            coordinates.add(grid.nextLine());
        }

        for(String coordinate : coordinates) {
            System.out.println(coordinate);
        }

}

2 个答案:

答案 0 :(得分:1)

这个怎么样:

Path path = Paths.get(args[0]);
List<String> coordinates = Files.readAllLines(path);
System.out.print(coordinates); // [abc456, mnjk452, aaliee23345, poitt78]

使用扫描仪可以完成同样的事情:

Path path = Paths.get(args[0]);
List<String> result = new ArrayList<>();
Scanner sc = new Scanner(path);
while (sc.hasNextLine()) {
    String line = sc.nextLine();
    result.add(line);
}
System.out.print(result); // [abc456, mnjk452, aaliee23345, poitt78]

在运行应用程序时(在IDE或命令行中)不要忘记传递参数!

答案 1 :(得分:0)

从文件读取时,您需要创建一个您为Scanner对象提供的File对象。你也应该根据grid.hasNextLine()控制你的while循环,因为你逐行抓取。最后,当从终端运行程序时,您应该执行以下操作

java&#34;您的班级名称为main&#34; &#34;文件名&#34;

将该文件作为参数传递给args [0]

try
{
    Scanner grid = new Scanner(new File(fname));
    while(grid.hasNextLine()) 
    {
        coordinates.add(grid.nextLine());
    }
}catch(FileNotFoundException e)
{
    System.err.println("File " + fname + " does not exist/could not be found");
    e.printStackTrace();
}