如何从文本文件中的单词填充ArrayList?

时间:2012-04-01 07:53:02

标签: java arraylist file-handling

我有一个包含由换行符分隔的单词的文本文件,如下所示:

>hello  
>world  
>example 

如何创建ArrayList并将每个单词存储为元素?

6 个答案:

答案 0 :(得分:3)

最简单的方式是使用Guava

File file = new File("foo.txt");
List<String> words = Files.readLines(file, Charsets.UTF_8);

(不保证是ArrayList,但我希望无关紧要。)

答案 1 :(得分:3)

您可以使用apache commons FileUtils.readLines()

认为它返回的List已经是ArrayList,但您可以使用构造函数ArrayList(Collection)来确保获得一个。{/ p >

答案 2 :(得分:3)

public static void main(String [] args)抛出IOException {         // TODO自动生成的方法存根

    File file = new File("names.txt");
    ArrayList<String> names = new ArrayList<String>();
    Scanner in = new Scanner(file);
    while (in.hasNextLine()){
        names.add(in.nextLine());
    }
    Collections.sort(names);
    for(int i=0; i<names.size(); ++i){
        System.out.println(names.get(i));
    }

答案 3 :(得分:0)

您逐行读取文件,为字符串创建一个ArrayList,如果line.length&gt; 0,则将line.substring(1)添加到定义的ArrayList。

答案 4 :(得分:0)

我把文件放在“C:\ file.txt”;如果你运行以下内容,它将使用单词填充一个ArrayList并打印它们。

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;


public class Main {

    public static void main(String[] args) throws Exception {
        File file = new File("C:\\file.txt");
        BufferedReader br = new BufferedReader(new FileReader(file));
        List<String> lines = new ArrayList<String>();
        String line = br.readLine();
        while(line != null) {
            lines.add(line.replace(">", ""));
            line = br.readLine();
        }
        for(String l : lines) {
            System.out.println(l);
        }
    }

}

答案 5 :(得分:0)

我确信他们有很多库用1行来做这个,但这里是一个“纯粹的”Java实现:

请注意,我们已经“包装”/“装饰”等标准FileReader(一次只读取一个字节)和BufferedReader,它为我们提供了更好的readLine()方法。

BufferedReader reader = null;
try {
    reader = new BufferedReader(new InputStreamReader(
            new FileInputStream("test.txt"),
            Charset.forName("ISO-8859-1")));
    List<String> lines = new ArrayList<String>();
    String line;
    while ((line = reader.readLine()) != null) {
        lines.add(line);
    }
    System.out.println(lines);
} catch (IOException e) {
    e.printStackTrace();
} finally {
    if (reader != null) {
        reader.close();
    }
}