Java/通过out.write在第一行写入
我试图找到一种方法来写入文件的第一行 问题是我向文件中写入了大约3000行(byJava/通过out.write在第一行写入,java,file,Java,File,我试图找到一种方法来写入文件的第一行 问题是我向文件中写入了大约3000行(byout.write),但就在本文的结尾,我有一个需要插入到此文件第一行的信息 有一个简单的方法可以做到这一点吗 有一个简单的方法可以做到这一点吗 没有。这并不是因为Java不好用——它只是文件系统,通常不允许在文件中插入数据 选项: 在内存中生成文件(3000行不是很多),然后在知道第一行时将其全部写出来 写出没有第一行的文件,然后通过写出第一行,然后逐行复制“旧”文件来启动新文件 如果在开始之前知道第一行的长度(
out.write
),但就在本文的结尾,我有一个需要插入到此文件第一行的信息
有一个简单的方法可以做到这一点吗
有一个简单的方法可以做到这一点吗
没有。这并不是因为Java不好用——它只是文件系统,通常不允许在文件中插入数据
选项:
- 在内存中生成文件(3000行不是很多),然后在知道第一行时将其全部写出来
- 写出没有第一行的文件,然后通过写出第一行,然后逐行复制“旧”文件来启动新文件
- 如果在开始之前知道第一行的长度(以字节为单位),可以留出足够的空间,写出文件的长度,然后覆盖第一行
- 在内存中生成文件(3000行不是很多),然后在知道第一行时将其全部写出来
- 写出没有第一行的文件,然后通过写出第一行,然后逐行复制“旧”文件来启动新文件
- 如果在开始之前知道第一行的长度(以字节为单位),可以留出足够的空间,写出文件的长度,然后覆盖第一行
OutputStream finalOs;
OutputStream dataOs;
//...write your data
finalOs.write(your information);
finalOs.write(dataOs);// just 4 example
您可以使用两个流,一个用于当前流,一个用于最终流。 写入结束时,首先写入信息,然后将当前流写入最终流
OutputStream finalOs;
OutputStream dataOs;
//...write your data
finalOs.write(your information);
finalOs.write(dataOs);// just 4 example
如何在文件中“留出足够的空间”?你能解释一下吗。谢谢。@Oleksandr.Bezhan:只有当您确切知道需要保留多少空间时,它才会起作用,但只需在那里写入空间(或任何您喜欢的内容),然后使用类似于
RandomAccessFile
的方法在结尾处覆盖文件的该部分。没有更多的信息就很难变得更具体。如何在文件中“留出足够的空间”?你能解释一下吗。谢谢。@Oleksandr.Bezhan:只有当您确切知道需要保留多少空间时,它才会起作用,但只需在那里写入空间(或任何您喜欢的内容),然后使用类似于RandomAccessFile
的方法在结尾处覆盖文件的该部分。没有更多的信息,很难更具体。