Если я ясно понимаю вашу проблему, у вас есть несколько сообщений в одном файле, и сообщение состоит из 3 строк:
Затем вы можете сделать это так:
public List<Message> getMessages(String fileName) throws IOException {
List<Message> messages = new ArrayList<>();
try {
String from;
String to;
String body;
Message message;
List<String> lines = Files.readAllLines(Paths.get(fileName));
for (int i = 0; i < lines.size(); i += 3) {
from = lines.get(i);
to = lines.get(i + 1);
body = lines.get(i + 2);
message = new Message(from, to, body);
messages.add(message);
}
} catch (IOException e) {
throw e;
}
return messages;
}
Здесь вы перебираете файл сообщений, в котором передаете имя файла в параметрах, и увеличиваете счетчик строк до 3.на каждой итерации, так что вы можете просто получить все нужные вам данные (от, до и тело).
Если этого примера кода недостаточно, вы можете использовать split () от, до и тела, чтобы извлечьтолько значение:
String fromValue = from.split(": ")[1]
Примечание: используемый здесь класс сообщений выглядит так:
public class Message {
private String from;
private String to;
private String body;
public Message(String from, String to, String body) {
this.from = from;
this.to = to;
this.body = body;
}
}