2015-03-09 5 views
-1

Например, я должен был сохранить контактную информацию в .txt-файле, и после этого я хочу просмотреть контактные данные человека только путем ввода имени.Чтение строки под строкой из файла

Например, если бы я иметь файл .txt, содержащий эти строки,

Имя: Shiroe
Контактный телефон: 1234567890
Имя: Кирито
Контактный телефон: 0987654321

и я ввел имя «Широкое» в качестве имени контакта для просмотра. Мой ожидаемый результат будет,

Имя: Shiroe
Контактный телефон: 1234567890

Таким образом, нижняя линия, можно прочитать строку ниже строки (читай "Shiroe"/"Имя : Shiro ", а затем читает строку ниже/после" Shiroe ") для использования в качестве вывода? Или я задаю неправильный вопрос?

+5

Да, это возможно! Попробуйте, а затем задайте вопрос, когда у вас есть проблема :) –

+0

Прочитайте до Сиро, затем прочитайте следующую строку, пока она не начнется с имени атрибута, а затем проанализируйте ее, чтобы получить данные в основном. Является ли этот файл огромным, если не считать чтение в списке контактов ... –

+0

Почему бы вам не сохранить их в JsonArray JsonObjects? – nafas

ответ

1

Вы могли бы сделать что-то вроде этого ... Это трудно издеваться правильный фрагмент кода без какого-либо кода твоего, показанного, но логика должна применяться ...

try(BufferedReader br = new BufferedReader(new FileReader("yourFile.txt"))) { 
     StringBuilder builder = new StringBuilder(); 
     String line = br.readLine(); 
     Boolean needNextLine = false; 

     while (line != null) { 
      if (needNextLine) { 
       sb.append(line) 
       needNextLine = false; 
       sb.append(System.lineSeparator()); 
      } 

      if (line.contains("Shiroe")) {  // hardcoded 
       sb.append(line); 
       needNextLine = true; 
       sb.append(System.lineSeparator()); 
      } 

      line = br.readLine(); 
     } 
     String toBeReturned = sb.toString(); 
    } 
+0

Извинения за поздний ответ. Это именно то, что я ищу. (хотя я думал о сэндвичевых струнах, а затем вытаскивал один в середине, но это лучше). –

0

Вполне возможно


  • поиска всей строки (насыщий "текст", содержащий данные из текстового файла) для возникновения "Имя: Shiroe" с помощью INT StartPos = text.indexOf ("Имя: Shiroe")
  • Это вернет вам индекс первого появления символа ('N') в этом «Name: Shiroe».
  • Теперь поиск другого появления "Name" после "Названия: Shiroe" с помощью endPos = text.indexOf ("Name", пос + 1)
  • Теперь извлечь форму подстроки StartPos до endPos использования text.subString (StartPos, endPos);

int startPos = text.indexOf("Name:Shiroe"); 
int endPos = text.indexOf("Name",startPos); 
String details = text.subString(startPos,endPos); 

веселит :)

Смежные вопросы