Jon*_*eet 10
是的,使用RandomAccessFile
- 这就是它的用途.你可以使用a FileChannel
,但我会先做RandomAccessFile
- 它可能更简单.
请注意,在编写结束部分后,您将无法在文件的"中间插入":我不知道任何支持该文件系统的文件系统.在编写最后一节之前,你需要知道完整的大小,基本上.另一种方法是顺序写入,记住最后一位直到结束.
如果您可以向我们提供有关您需要做什么的更多信息(以及何时获得有关尺寸的信息),我们可以为您提供更多帮助.
编辑:要创建具有特定大小的文件,您可以seek()
通过结束然后写入数据:
import java.io.*;
public class Test
{
// Just for the sake of a simple test program!
public static void main(String[] args) throws Exception
{
RandomAccessFile file = new RandomAccessFile("file.dat", "rw");
file.seek(100);
file.write(0);
file.close();
}
}
Run Code Online (Sandbox Code Playgroud)
退出之后,file.dat
将长101个字节.(注意,通常你会使用try/finally等)
编辑:作为评论中提到的coobird,setLength()
也将扩展文件 - 但如果你给出一个小于当前大小的长度,它也会截断文件.鉴于您对基本上编写种子数据的评论,我怀疑寻找和写作正是您想要的行为.当你收到一个块时,只需找到正确的位置,写出来,文件将在需要时自行扩展.
归档时间: |
|
查看次数: |
1650 次 |
最近记录: |