如何使用java将巨大的字符串写入文件
所以基本上我有:如何使用java将巨大的字符串写入文件,java,Java,所以基本上我有: FileOutputStream fos = new FileOutputStream(dir + "/" + name); fos.write(bImg); fos.close(); 现在这里有时bImg可能包含超过5MB的内容,我碰巧遇到了性能问题。因此,我可能需要将字符串的一部分对一部分写入文件。比如先向文件中写入5000个字符,然后再写入下一个5000个字符等等。但我真的不知道该怎么做 尝试: String file = dir + "/" + name; FileO
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();
但是仍然存在同样的问题,这是不可能的您需要将输出字符串包装到BufferedOutputStream中。它将为您处理以块的形式写入数据。完成后,请记住刷新BufferedOutputStream,以便所有数据都会出现在文件中。可能的重复项可以使用重载的write()
方法,如IsbImg
Is string?名字让我觉得它像一个字节数组。如果它确实是一个字符串,则应该使用编写器
,而不是输出流
——在一个块中写入5 Mb字节数组不应导致性能问题。把它分成几个部分写会比这慢。如果您有性能问题,可能是在上游生成bImg
值。它不是write to file语句。不,它是byte[]
,实际上我使用ajax从客户端发送字节,然后在我的服务器中以字符串形式接收数据,将其转换为字节并写入文件,但服务器的速度太慢了。如果是字节数组,为什么要以“字符串”形式接收?字节数组不是字符串,将其视为字符串很可能会损坏数据。在5 Mb单次write()
写入前后添加缓冲区不会提高性能。在执行多个小写入时,而不是在一个大写入发生时,缓冲帮助。感谢您的回复,只是尝试了您所说的方式,但没有运气,您可以在我的问题更新中了解我是如何做的。