将文本文件读入arraylist

时间:2016-04-06 03:01:55

标签: java arraylist

我对Java很陌生,所以我在解决这个问题时遇到了一些麻烦。所以基本上我有一个看起来像这样的文本文件:

1:John:false  
2:Bob:false    
3:Audrey:false

如何从文本文件中为每一行创建一个ArrayList?

5 个答案:

答案 0 :(得分:7)

从文件中读取并将每行添加到arrayList中。例如,请参阅代码。

public static void main(String[] args) {

        ArrayList<String> arr = new ArrayList<String>();
        try (BufferedReader br = new BufferedReader(new FileReader(<your_file_path>)))
        {

            String sCurrentLine;

            while ((sCurrentLine = br.readLine()) != null) {
                arr.add(sCurrentLine);
            }

        } catch (IOException e) {
            e.printStackTrace();
        } 

    }

答案 1 :(得分:1)

如果您知道如何逐行读取文件,可以使用Scanner或使用BufferedReader,那么将文本文件读入ArrayList并不困难。您需要做的就是读取每一行并将其存储到ArrayList中,如以下示例所示:

BufferedReader bufReader = new BufferedReader(new 
FileReader("file.txt"));
ArrayList<String> listOfLines = new ArrayList<>);
String line = bufReader.readLine(); while (line != null)
{
    listOfLines.add(line);
    line = bufReader.readLine();
} 
bufReader.close();

请记住在完成后关闭BufferedReader以防止资源泄漏,因为您没有尝试使用资源声明

答案 2 :(得分:0)

虽然我上面的答案有效,但这是另一种方法。确保导入java.util.Scanner。

public static void main(String[] args) {
     ArrayList<String> list = new ArrayList<String>();
     Scanner scan = new Scanner("YOURFILE.txt");
     while(scan.hasNextLine()){
         list.add(scan.nextLine());
     }
     scan.close();
}

答案 3 :(得分:0)

这对你有帮助。

List<String> list = new ArrayList<String>();
BufferedReader reader = new BufferedReader(new FileReader("list.txt"));
String line;
while ((line = reader.readLine()) != null) {
    list.add(line);
}
reader.close();

然后你可以访问arraylist中的那些元素。

答案 4 :(得分:0)

java 8允许你这样做

String fileName = "c://lines.txt";
        List<String> list = new ArrayList<>();

        try (Stream<String> stream = Files.lines(Paths.get(fileName))) {

            list = stream
                    .map(String::toUpperCase)
                    .collect(Collectors.toList());

        } catch (IOException e) {
            e.printStackTrace();
        }

        list.forEach(System.out::println);
相关问题