Чтение данных выборочного столбца из текстового файла в список на Java - PullRequest
5 голосов
/ 31 января 2012

Может кто-нибудь помочь мне прочитать выборочный столбец данных в текстовом файле в список ...

например: если данные текстового файла следующие

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

из приведенных выше данных, если мне нужно собрать столбец "имя", используя список в Java и распечатать его ..

Ответы [ 3 ]

3 голосов
/ 31 января 2012

Используйте программу чтения файлов и читайте ее построчно, разбивайте пробелы и добавляйте любые столбцы в список. Используйте BufferedReader для захвата строк примерно так:

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

Тогда вы можете сделать, чтобы захватить строку:

String line = br.readLine();

Наконец, вы можете разбить строку на массив по столбцам, выполнив следующее:

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

Затем вы можете получить доступ к столбцам и добавить их в список в зависимости от того, хотите ли вы столбец 0, 1 или 2.

2 голосов
/ 31 января 2012

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);
}
1 голос
/ 31 января 2012

Разграничены ли столбцы вкладками?

Посмотрите на Java CSV , библиотеку с открытым исходным кодом для чтения текстовых файлов с разделителями-запятыми или разделителями табуляции.Должен сделать большую часть работы.Я никогда не использовал его сам, но я предполагаю, что вы сможете запросить все значения из столбца 1 (или аналогичные).

В качестве альтернативы, вы можете прочитать файл по одной строке за раз, используяBufferedReader (у которого есть readLine()) метод), а затем вызовите String.split() и возьмите нужные вам части.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...