从文本文件读取到arraylist

时间:2014-08-21 12:13:05

标签: java arrays

我应该从文本文件中读取几行,然后将它们存储在arraylist中。 做这种事的最好方法是什么? 我必须稍后才能检查每个字符。

4 个答案:

答案 0 :(得分:0)

以下是完成工作的简单代码段:

import java.io.File;
import java.util.ArrayList;
import java.util.Scanner;

public class ParseFile
    {            
        public static void main (String[] args)
        {
            Scanner scanner = null;
            ArrayList<String> store = new ArrayList<String>();
            try {
               scanner= new Scanner(new File("input.txt"));
                while (scanner.hasNext()) {
                    store.add(scanner.next());             
                }
            } catch (Exception e) {
                e.printStackTrace();            
            }
            finally{
                scanner.close();
            }

            for (String item : store) {
                System.out.println(item);
            }

        }
    }

答案 1 :(得分:0)

使用Apache commons io List lines = FileUtils.readLines(file, "UTF-8");

答案 2 :(得分:0)

您可以使用Files.readAllLines(Path path)

Path path = //...
ArrayList<String> lines = new ArrayList<>(Files.readAllLines(path, Charset.defaultCharset()));

但是使用这种方法,你可以在内存中有两个列表短时间内两次(即在执行ArrayList构造函数期间)。

如果您不需要可修改的列表,并且不需要列表的类型为ArrayList

List<String> lines = Files.readAllLines(path, Charset.defaultCharset());

当然也有效。

java 8 中,您当然也可以使用Stream

final ArrayList<String> lines = new ArrayList<>();
try (Stream<String> lineStream = Files.lines(path)) {
    lineStream.forEach(lines::add);
}

这样,这些行在读取后会直接添加到列表中。

答案 3 :(得分:0)

试试这个:

 FileReader in = null;
    try
    {
        in = new FileReader("C:/Test.txt");
        BufferedReader br = new BufferedReader(in);
        ArrayList<String> lines = new ArrayList<String>();


        String s = br.readLine();
        while (s != null)
        {
            lines.add(s);
            s = br.readLine();

        }
        in.close();
    }
    catch (Exception ex)
    {
        Logger.getLogger(Read.class.getName()).log(Level.SEVERE, null, ex);
    }
}