0
Я хочу прочитать следующее в TimeEntry
с BufferedReader
.читать LocalDate с буферизацией - java
Date: 11.10.2016
start: 09:00
я знаю, как преобразовать String
в LocalDate
, но я понятия не имею, как его использовать в своем коде с BufferedReader
Я предполагаю, что это нужно:
Pattern p = Pattern.compile(
" * Date:*(\\\d\\\ d)\\\ .(\\\d\\\d)\\\ .(\\\d\\\d\\\d\\\d) *"
);
public class TimeEntry {
private LocalDate date;
private LocalTime start;
public TimeEntry(LocalDate date, LocalTime start) {
this.date = date;
this.start = start;
}
try {
File file = new File("MailDaten.txt");
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
StringBuffer stringBuffer = new StringBuffer();
String line = null;
String[] line_split = line.split(" ");
String test = line_split[0];
int s = test.split("@")[0].lastIndexOf(" ");
String name = test.substring(0,s);
String mail = test.substring(s+1,test.length());
while ((line = bufferedReader.readLine()) != null) {
line_split = line.split(" ");
Daten.add(
new MailEntry(
name, mail,
new TimeEntry(
line_split[3], line_split[3], line_split[4], line_split[5]
)
)
);
stringBuffer.append(line);
stringBuffer.append("\n");
}
fileReader.close();
System.out.println("Contents of file:");
System.out.println(stringBuffer.toString());
} catch (IOException e) {
e.printStackTrace();
}
Вы должны избегать вызова 'Строка # спички (регулярных выражений)' в цикле, как это будет перекомпилировать регулярное выражение при каждом вызове, который является дорогостоящим –
@NicolasFilotto True. По этой же причине код не должен создавать объекты 'DateTimeFormatter' внутри цикла. --- О, подождите. Мой код не имеет * петли. – Andreas
ах да, это так, так необычно использовать 'BufferedReader' без потока или цикла, что я пропустил это, мой плохой –