Мой любимый способ прочитать небольшой файл - использовать BufferedReader и StringBuilder. Это очень просто и точно (хотя и не особенно эффективно, но достаточно для большинства случаев):
BufferedReader br = new BufferedReader(new FileReader("file.txt"));
try {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
line = br.readLine();
}
String everything = sb.toString();
} finally {
br.close();
}
Некоторые отметили, что после Java 7 вы должны использовать try-with- Когда я читаю строки, подобные этому, я обычно хочу выполнять некоторую обработку строк для каждой строки, поэтому я перехожу к этой реализации. try(BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
line = br.readLine();
}
String everything = sb.toString();
}
try(BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
line = br.readLine();
}
String everything = sb.toString();
}
/ g5]
Хотя если я хочу просто прочитать файл в String, я всегда использую Apache Commons IO с помощью метода класса IOUtils.toString (). Вы можете посмотреть источник здесь:
http://www.docjar.com/html/api/org/apache/commons/io/IOUtils.java.html
FileInputStream inputStream = new FileInputStream("foo.txt");
try {
String everything = IOUtils.toString(inputStream);
} finally {
inputStream.close();
}
И еще проще с Java 7:
try(FileInputStream inputStream = new FileInputStream("foo.txt")) {
String everything = IOUtils.toString(inputStream);
// do something with everything string
}
Вы читали JavaDoc of Agenda?
http://jfxtras.org/doc/8.0/jfxtras-agenda/jfxtras/scene/control/agenda/Agenda.html
Повестка дня имеет всплывающее окно по умолчанию, позволяющее редактировать основные свойства встреч, но, возможно, вы захотите что-то сделать сами. Если это так, вам нужно зарегистрироваться в editAppointmentCallback и открыть свое собственное всплывающее окно. Поскольку Повестка дня не диктует механизм события / обратного вызова при реализации Назначения, она не может быть проинформирована об изменениях в назначении. Поэтому, когда пользовательское редактирование завершено, убедитесь, что повестка дня обновляется, вызывая refresh ().
Я нашел, как это сделать, я только что добавил этот код:
agenda.setEditAppointmentCallback( (appointment) -> {
editPopUp();
return null;
});
при инициализации повестки дня и editPopUp () вызывает функцию, которая создает всплывающее окно, которое я хотел показать