将选择列数据从文本文件读入Java中的列表

时间:2012-01-31 17:26:14

标签: java file-io

有人可以帮助我将文本文件中的选择性数据列读入列表..

例如:如果文本文件数据如下

-------------
id name age
01 ron   21
02 harry 12
03 tom   23
04 jerry 25
-------------

如果我需要使用java中的list收集列“name”并打印它,请从以上数据中获取..

3 个答案:

答案 0 :(得分:3)

使用文件阅读器并逐行阅读,打破空格并将所需的任何列添加到列表中。使用BufferedReader通过以下方式获取行:

BufferedReader br = new BufferedReader(new FileReader("C:\\readFile.txt"));

然后你可以抓住一条线:

String line = br.readLine();

最后,您可以按行将字符串拆分为数组:

String[] columns = line.split(" ");

然后,您可以访问列并将其添加到列表中,具体取决于您是否需要列0,1或2。

答案 1 :(得分:2)

java.util.Scanner可用于读取文件,丢弃不需要的列。 在处理文件时打印所需的列值,或者add()将它们打印到java.util.ArrayList,并在处理完成后打印它们。

错误检查有限的小例子:

Scanner s = new Scanner(new File("input.txt"));
List<String> names = new ArrayList<String>();

// Skip column headings.

// Read each line, ensuring correct format.
while (s.hasNext())
{
    s.nextInt();         // read and skip 'id'
    names.add(s.next()); // read and store 'name'
    s.nextInt();         // read and skip 'age'
}

for (String name: names)
{
    System.out.println(name);
}

答案 2 :(得分:1)

列是否以制表符分隔?

查看Java CSV,一个用于读取逗号分隔或制表符分隔文本文件的开源库。应该完成大部分工作。我自己从未使用它,但我认为你可以要求第1列(或类似)中的所有值。

或者,您可以使用BufferedReader(具有readLine())方法一次读取一行文件,然后调用String.split()并抓取您想要的部分。< / p>