我可以用Java写入5GB文件的末尾吗?这个问题出现在我的办公室里,没有人确定答案是什么。
答案 0 :(得分:13)
使用RandomAccessFile可以相当容易地做到这一点。以下内容应该有效:
String filename;
RandomAccessFile myFile = new RandomAccessFile(filename, "rw");
// Set write pointer to the end of the file
myFile.seek(myFile.length());
// Write to end of file here
答案 1 :(得分:6)
是。看看这个链接RandomAccessFile
http://java.sun.com/javase/6/docs/api/java/io/RandomAccessFile.html#seek(long)
也就是说,打开文件,然后将位置设置为文件末尾。并从那里开始写作。
告诉我们它是怎么回事。
答案 2 :(得分:2)
实际上,这取决于底层文件系统以及该平台上的JVM如何实现文件流。因为,如果一个文件大于5GB你就不能用32Bit操作系统打开整个文件并写入它,因为有43亿限制内容(32 ^ 2)。
所以,答案很快,是的,有可能,如果Java正确处理文件并且文件系统是一个很好的文件系统:)
答案 3 :(得分:1)
如果您只是意味着需要附加到该文件,请查看
FileWriter(File file, boolean append)
FileWriter类中的构造函数。
抱歉,我没有5GB文件可以方便地进行测试。 :)
答案 4 :(得分:0)
5GB?我想知道操作系统是否是一个更大的问题,但这是值得怀疑的。
理论上,您只需在附加模式下打开文件。
OutputStream in = new java.io.FileOutputStream(fileName, true);
并写入,直到文件系统填满。
有关char数据,请参阅Bill the Lizard。