Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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 重写到文件中_Java_File_File Io_Rewrite - Fatal编程技术网

Java 重写到文件中

Java 重写到文件中,java,file,file-io,rewrite,Java,File,File Io,Rewrite,我编写了一个简单的函数,如下所示: private static void write(String Swrite) throws IOException { if(!file.exists()) { file.createNewFile(); } FileOutputStream fop=new FileOutputStream(file); if(Swrite!=null) fop.write(Swrite.getBytes()); fo

我编写了一个简单的函数,如下所示:

private static void write(String Swrite) throws IOException {
   if(!file.exists()) {
      file.createNewFile();
   }
   FileOutputStream fop=new FileOutputStream(file);
   if(Swrite!=null)
      fop.write(Swrite.getBytes());
   fop.flush();
   fop.close();
}
FileOutputStream fop = new FileOutputStream(file, true);

每次我调用它时,它都会重写,然后我只会得到最后编写的项目。如何将其更改为不重写?
文件
变量全局定义为
文件

使用constrctor,该constrctor以append标志作为参数

FileOutputStream fop=new FileOutputStream(file, true); 

FileOutputStream
上,需要添加
boolean append
参数。然后它会像这样:

private static void write(String Swrite) throws IOException {
   if(!file.exists()) {
      file.createNewFile();
   }
   FileOutputStream fop=new FileOutputStream(file);
   if(Swrite!=null)
      fop.write(Swrite.getBytes());
   fop.flush();
   fop.close();
}
FileOutputStream fop = new FileOutputStream(file, true);

这告诉
FileOutputStream
它应该附加文件,而不是清除和重写其所有当前数据。

如果您尝试以特定字节偏移量写入,请尝试。

两个参数构造函数是正确的。这是多余的:

if(!file.exists()) {
      file.createNewFile();
}

构造函数将为您执行此操作。

您应该在
append
模式下打开文件。为此,默认情况下
FileOutputStream
将在
write
模式下打开文件。您无需检查
文件是否存在,它将由
文件输出流隐式完成

private static void write(String Swrite) throws IOException {
    FileOutputStream fop=new FileOutputStream(file, true);
   if(Swrite!=null)
      fop.write(Swrite.getBytes());
   fop.flush();
   fop.close();
}

这不一定是某个偏移量,他只是想要附加文件。但还是有一个小问题,它不留任何空格,它写在最后一个字符之后,因此不可读,我如何使它在每次写后都留有空格?change
fop.write(…)
to
fop.write(…+“\n”)
它不起作用。上面说write()没有类似的suitale构造函数。虽然我设法解决了这个问题,但还有一个矿工的问题,在下一行中是否每次都要写入一个文件?我的意思是先写第一行,然后从第一行开始写第二行,依此类推。我发现它的ascii码是10,但因为它的字符和我的函数是写字符串,所以它不起作用。还有其他想法吗?但还是有一个小问题,它不留任何空格,它写在最后一个字符后面,所以不可读,我怎么能让它在每个字符后面留一个空格呢writing@MostafaAlli:然后写入空格