Почему BufferedWriter пишет неполные строки?JAVA

Программисты JAVA общаются здесь
Anonymous
Почему BufferedWriter пишет неполные строки?

Сообщение Anonymous »

У меня есть метод, который извлекает месяц с данной даты.
Например, 11 марта 2025 г. < /code> В качестве аргумента метод возвращает

Код: Выделить всё

11, 2025
.

Код: Выделить всё

static String extractMonth(String fullDate, String month) {
return fullDate.substring(month.length() + 1);
}
+ 1 предназначен для учета пространства до 11.
junit подтвердил, что этот метод работает, как и предполагалось, и теперь я хочу использовать BufferedWriter , чтобы написать эту извлеченную строку в файл.

Код: Выделить всё

for (TimeObject timeObject : List) {

File file = new File("File.txt");

boolean _ = file.createNewFile();

try (FileWriter fw = new FileWriter(file);
BufferedWriter writer = new BufferedWriter(fw)) {

writer.write(extractMonth(timeObject.getDate(), timeObject.getMonth()));
}
}
Вывод в файле равен, 2025 Даже если тест прошел с результатом, как 11, 2025 .
Однако, объявляя дату и месяц в качестве собственных строк, вывод в файле является ожидаемым.

Код: Выделить всё

for (TimeObject timeObject : List) {
String month = timeObject.getMonth();
String date = timeObject.getDate();

File file = new File("File.txt");

boolean _ = file.createNewFile();

try (FileWriter fw = new FileWriter(file);
BufferedWriter writer = new BufferedWriter(fw)) {

writer.write(extractMonth(date, month));
}
}
Я, честно говоря, смущен таким поведением, кто -нибудь может объяснить, почему это происходит, кажется, что я должен знать о проблемах в будущем.

Подробнее здесь: https://stackoverflow.com/questions/795 ... te-strings

Вернуться в «JAVA»