Так в основном у меня есть:Как написать огромную строку в файл с помощью Java
FileOutputStream fos = new FileOutputStream(dir + "/" + name);
fos.write(bImg);
fos.close();
Теперь здесь иногда bImg
мог содержит более 5MB
, которые я случиться, чтобы получить проблемы с производительностью. Поэтому мне может потребоваться записать часть в часть строки в файл. Что-то вроде написания 5000 символов в файл сначала, а затем до 5000 символов и так далее. Но я не знаю, как это сделать.
Пробовал:
String file = dir + "/" + name;
FileOutputStream fos = new FileOutputStream(new File(file));
BufferedOutputStream buffOut=new BufferedOutputStream(fos);
buffOut.write(bImg);
buffOut.flush();
buffOut.close();
Но не повезло еще не имея такую же проблему
Возможный дубликат [Самый быстрый способ записи огромных данных в текстовом файле Java] (http://stackoverflow.com/questions/1062113/fastest-way-to-write-huge-data-in-text-file-java) – maszter
Вы можете использовать перегруженные методы 'write()', такие как http://docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html#write%28byte%5B%5D,%20int, % 20int% 29 – Rehman
Является ли 'bImg' * строкой *? Имя заставляет это звучать как байт-массив для меня. Если это действительно строка, вы должны использовать 'Writer', а не' OutputStream'. --- Запись массива в 5 Мбайт в одном блоке не должна приводить к проблемам с производительностью. Написание его по частям будет медленнее, чем это. Если у вас проблемы с производительностью, это может быть вверх по потоку, где вы создаете значение 'bImg'. Это не оператор write-to-file. – Andreas