所以我想在一个文本文件中读取一堆包含如下字符串的输入:
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);
}
}
答案 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();
}