2015-08-30 4 views
-3

текстовый файл:Буферный поиск текстового файла?

1 ааа 100

где вставка номер 1 выход нуль

Java:.

private static void SearchForId() { 
     try { 
      Scanner scanner = new Scanner(System.in); 
      System.out.println("Inter Id"); 
      String id = scanner.next(); 
      BufferedReader Buffer = new BufferedReader(new FileReader(new File(
        "D://Save.txt"))); 
      String line = null; 
      while ((line = Buffer.readLine()) != null) { 
       if (line.trim().equals(id)) { 
        System.out.println(line + "\n"); 

       } 

      } 
     } catch (Exception e) { 
      System.out.print("" + e); 
     } 

    } 

где проблема ??

+0

Что происходит не так и что вы хотите от этого сделать? – Zarwan

+0

Найти номер в файле – tamtam29

+0

Почему вы вызываете 'println()' с дополнительной новой строкой? Дело в том, что это printLINE - он уже добавляет один. – bcsb1001

ответ

-1

Если я правильно понял вопрос правильно, вам не нужно Scanner здесь:

private static void SearchForId() { 
    try { 
     System.out.println("Inter Id"); 
     BufferedReader Buffer = new BufferedReader(new FileReader(new File(
       "D://Save.txt"))); 
     String[] line = Buffer.readLine().split(" "); 
     int a = Integer.parseInt(line[0]); 
     String s = line[1]; 
     int b = Integer.parseInt(line[2]); 
    } catch (Exception e) { 
     System.out.print("" + e); 
    } 

} 
+0

Как именно это должно компилироваться без объявления для 'сканера'? И как именно он ищет файл, когда он только читает одну строку? И как вы можете использовать 'readLine()', не проверяя результат на null? или 'split()' без проверки длины возвращаемого массива? – EJP

+0

@EJP file.txt в вопросе содержит ровно одну строку и ровно 3 числа, поэтому проверка на 'null' здесь бесполезна. –

+0

Вы вообще не понимаете вопроса, не говоря уже о правильности. ОП написал цикл. Он пытается отсканировать файл. Ваш код читает одну строку и присваивает две неиспользуемые переменные. Он не запрашивает у пользователя идентификатор. Он не печатает результат. Это полностью и совершенно не имеет отношения к вопросу. – EJP

0

Вы можете попробовать этот способ.

private static void SearchForId() { 
    try { 
     Scanner scanner = new Scanner(System.in); 
     System.out.println("Inter Id"); 
     String id = scanner.next(); 
     BufferedReader Buffer = new BufferedReader(new FileReader(new File(
       "D://Save.txt"))); 
     String line = null; 
     while ((line = Buffer.readLine()) != null) { 
      String arr[] = line.split(" "); 
      for (int i = 0; i < arr.length; i++) { 
       if (arr[i].trim().equals(id)) { 
        System.out.println(line); 

       } 
      } 

     } 
    } catch (Exception e) { 
     System.out.print("" + e); 
    } 
Смежные вопросы