2013-10-28 4 views
-3

Эй, ребята, У меня есть текстовый файл структурирован как этотЧтение определенной строки из текстового файла Java

1,2, имя, 3

Как я могу получить все строки с номером 2 в колонке 2?

До сих пор я могу прочитать файл и обновить его.

+2

Пожалуйста, пост код, который вы использовали для прочитайте файл. – SudoRahul

+2

Ваш вопрос слишком расплывчатый, SO не работает таким образом. –

+0

прочитайте каждую строку, если строка не равна нулю, затем разделите с помощью ',' в качестве разделителя и проверите массив [1] = 2, если это так, добавьте эту строку в коллекцию ... repeat для всех строк – upog

ответ

0
ArrayList<String[]> tempArrayList = new ArrayList<String[]>(); 

шаг 1: читаться строка за строкой

String row = "row read from file"; 

шаг 2: разделить каждую строку по одному символу ''

String[] temp = row.split(','); 

этап 3: сохранить разделенную матрицу в желаемом объекте типа данных

tempArrayList.add(temp); 
1

Я думаю, что вы можете пойти таким образом ..

чтения файла построчно. После прочтения каждой строки используйте строковый токенизатор и получите второй столбец. И проверьте погоду на «2» или нет.

Я надеюсь, что это поможет вам, простой способ ...

+0

Спасибо за то, что она сработала но в конце я использовал регулярное выражение и просто напечатал все строки, содержащие определенный шаблон, спасибо – user2924202

0

Если по столбцам вы имеете в виду в контексте в CSV файл, в котором столбцы в строке отделены друг от друга запятой, то вы можете сделать что-то вроде ниже

try { 
     BufferedReader reader = new BufferedReader(new FileReader(new File("test.txt"))); 
     String readLine = null; 
     int count = 0; 
     while((readLine = reader.readLine()) != null) { 
      count++; 
      String[] words = readLine.split(","); 
      if(words[1]!=null && words[1].equalsIgnoreCase("2")) { 
       System.out.println("Criteria met at Line number " + count); 
      } 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
Смежные вопросы