Чтение строки под строкой из файла
Например, я должен был сохранить контактную информацию в файле.txt, и после его сохранения я хотел бы просмотреть контактную информацию о человеке, только введя имя.
Например, если бы у меня был файл.txt, содержащий эти строки,
Имя: Широэ
Контактный номер: 1234567890
Имя: Кирито
Контактный номер: 0987654321
и я ввел "Shiroe" в качестве имени контакта для просмотра. Мой ожидаемый результат будет,
Имя: Широэ
Контактный номер: 1234567890
Итак, суть в том, можно ли прочитать строку ниже строки (сначала прочитайте "Широ"/"Имя: Широ", а затем прочитайте строку ниже / после "Широ") и использовать в качестве вывода? Или я задаю не тот вопрос?
2 ответа
Вы могли бы сделать что-то вроде этого... Трудно издеваться над правильным фрагментом без показа вашего кода, но логика должна применяться...
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();
}
Вполне возможно
- поиск по всей строке (sat "text", содержащий данные из текстового файла) для поиска "Name:Shiroe" с использованием int startPos = text.indexOf("Name:Shiroe")
- Это вернуло бы вам индекс первого вхождения символа ('N') в это "Имя: Широ".
- Теперь найдите другое вхождение "Name" после "Name:Shiroe" с помощью endPos = text.indexOf("Name",pos+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);
ура:)