在Java中将文本文件中的选择性列数据读取到列表中



有人能帮我把文本文件中的一列选择性数据读取到列表中吗。。

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

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

从上面的数据中,如果我需要使用java中的列表收集列"name"并打印它。

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);
}

使用文件读取器逐行读取,在空格上换行,并将您想要的任何列添加到列表中。使用BufferedReader通过以下方式抓取行:

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

然后你可以做一条线:

String line = br.readLine();

最后,您可以通过以下操作将字符串按列拆分为数组:

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

然后,您可以访问这些列并将它们添加到列表中,具体取决于您想要的是列0、列1还是列2。

列是否由制表符分隔?

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

或者,您可以使用BufferedReader(它有一个readLine())方法一次读取一行文件,然后调用String.split()并获取所需的部分。

最新更新