我可以用Java写入5GB文件的末尾吗?

时间:2008-12-03 21:15:04

标签: java file-io

我可以用Java写入5GB文件的末尾吗?这个问题出现在我的办公室里,没有人确定答案是什么。

5 个答案:

答案 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