File your_file_name = File.createTempFile("your_file_name", null);
OutputStream outputStream = new FileOutputStream(your_file_name);
InputStream inputStream = new FileInputStream(your_file_name);
public void save(OutputStream outputStream) throws Exception {
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream));
writer.write((this.name + "\n"));
for(Asset ass: assets){
writer.write((ass.getName() + "\n"));
writer.write((ass.getPrice() + "\n"));
}
}
public void load(InputStream inputStream) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String name = reader.readLine();
this.name = name;
while (reader.ready()){
String nameAss = reader.readLine();
double price = Double.parseDouble(reader.readLine());
this.assets.add(new Asset(nameAss, price));
}
}
не могу догнать, в чтении и записи использовал BufferedReader и BufferedWriter , но BufferedWriter ничего не записывает в файл почему то, не могу понять почему.? когда запись делаю побайтово, то все ок записывает, outputStream.write(this.name.getBytes()) вот так прокатывает, а вот так нет writer.write((ass.getName() + "\n"));Енот
51 уровень
не могу в этой задаче разобраться, почему запись у меня через BufferedWriter не работает
Решен
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia VolkovaJava Developer в DXCMaster
9 декабря 2021, 08:46решение
writer.flush() добавь
+2
ЕнотExpert
9 декабря 2021, 08:55
спасибо))
а вот смотрите.
а если у меня .flush() вызывается у outputStream после вызова save
ivanov.save(outputStream);
outputStream.flush();
внутри save для BufferedWriter все равно тоже нужно вызывать flush?
0
Ksenia VolkovaJava Developer в DXCMaster
9 декабря 2021, 09:11
Да, потому что надо записать в файл данные, которые остались в буфере именно твоего BufferedWriter
+1