如何从inotepad文件导入arraylist

时间:2017-05-20 17:36:36

标签: java macos arraylist iterator java.util.scanner

我目前正在开发一个项目,我已经在我的程序中创建了一个arraylist。但是,我现在尝试从外部inotepad文件导入列表,这样我只需更改文件的内容,而不是在程序本身中添加新行。我试图使用扫描仪来拉取列表,但似乎我没有正确地执行此操作。我在网上找到的例子显示使用扫描仪,但我不知道如何将其转换为现有数组。我绝对可以使用一些指导!

程序:

package animalNames;

import java.util.*;
public class animalList {

public static void main(String args[]) {
// Create a new array list
ArrayList animalNames = new ArrayList();

// add animals to the array list
animalNames.add("Aligator");
animalNames.add("Rabbit");
animalNames.add("Snake");
animalNames.add("Spider");
animalNames.add("Turtle");
animalNames.add("Dog");

// Allow iterator to show contents of array list
System.out.print("Animals kept at the zoo: ");
Iterator itr = animalNames.iterator();

while(itr.hasNext()) {
    Object element = itr.next();
    System.out.print(element + " ");
}
System.out.println();

// Change the contents within array list
ListIterator litr = animalNames.listIterator();

while(litr.hasNext()) {
    Object element = litr.next();
    litr.set("1 " + element + " ");
}
System.out.print("There is exactly: ");
itr = animalNames.iterator();

while(itr.hasNext()) {
    Object element = itr.next();
    System.out.print(element);
}
System.out.println();

// Display array list backwards
System.out.print("Display list backward: ");

while(litr.hasPrevious()) {
    Object element = litr.previous();
    System.out.print(element + " ");
}
System.out.println();
}

}

2 个答案:

答案 0 :(得分:0)

重点是:从文件中读取数据时,没有“现有”数组。

换句话说:

  • 你的用例是:你硬代码一个List(数组相同),然后迭代含量
  • 使用文件中的数据时,您会读取该文件,并将该内容放入以前的列表中

您可以使用扫描仪here找到有关如何执行此操作的详细说明。

请理解:没有弯路。你必须退后一步,学习这样的教程,直到你明白他们做了什么为止。我们不能用一句话向你解释这些事情。它只需要花费时间......

答案 1 :(得分:0)

要从文件中读取并填充列表,这将有效。

List<String> lines = Files.readAllLines(Paths.get("file_path"), StandardCharsets.UTF_8);