Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java/通过out.write在第一行写入_Java_File - Fatal编程技术网

Java/通过out.write在第一行写入

Java/通过out.write在第一行写入,java,file,Java,File,我试图找到一种方法来写入文件的第一行 问题是我向文件中写入了大约3000行(byout.write),但就在本文的结尾,我有一个需要插入到此文件第一行的信息 有一个简单的方法可以做到这一点吗 有一个简单的方法可以做到这一点吗 没有。这并不是因为Java不好用——它只是文件系统,通常不允许在文件中插入数据 选项: 在内存中生成文件(3000行不是很多),然后在知道第一行时将其全部写出来 写出没有第一行的文件,然后通过写出第一行,然后逐行复制“旧”文件来启动新文件 如果在开始之前知道第一行的长度(

我试图找到一种方法来写入文件的第一行

问题是我向文件中写入了大约3000行(by
out.write
),但就在本文的结尾,我有一个需要插入到此文件第一行的信息

有一个简单的方法可以做到这一点吗

有一个简单的方法可以做到这一点吗

没有。这并不是因为Java不好用——它只是文件系统,通常不允许在文件中插入数据

选项:

  • 在内存中生成文件(3000行不是很多),然后在知道第一行时将其全部写出来
  • 写出没有第一行的文件,然后通过写出第一行,然后逐行复制“旧”文件来启动新文件
  • 如果在开始之前知道第一行的长度(以字节为单位),可以留出足够的空间,写出文件的长度,然后覆盖第一行
有一个简单的方法可以做到这一点吗

没有。这并不是因为Java不好用——它只是文件系统,通常不允许在文件中插入数据

选项:

  • 在内存中生成文件(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
的方法在结尾处覆盖文件的该部分。没有更多的信息,很难更具体。