Ank*_*kur 44 java file-io rewrite
我想重写一个文件的内容.
到目前为止我所想到的是:
这是最好的方法吗?或者是否有更直接的方式,即不必删除和创建文件,只需更改内容?
Sto*_*bor 81
使用FileOutputStream覆盖文件foo.log:
File myFoo = new File("foo.log");
FileOutputStream fooStream = new FileOutputStream(myFoo, false); // true to append
// false to overwrite.
byte[] myBytes = "New Contents\n".getBytes();
fooStream.write(myBytes);
fooStream.close();
Run Code Online (Sandbox Code Playgroud)
或者使用FileWriter:
File myFoo = new File("foo.log");
FileWriter fooWriter = new FileWriter(myFoo, false); // true to append
// false to overwrite.
fooWriter.write("New Contents\n");
fooWriter.close();
Run Code Online (Sandbox Code Playgroud)
jnt*_*t30 12
我强烈建议使用Apache Common的FileUtil.我发现这个包非常宝贵.它易于使用,同样重要的是,当您稍后回来时,它易于阅读/理解.
//Create some files here
File sourceFile = new File("pathToYourFile");
File fileToCopy = new File("copyPath");
//Sample content
org.apache.commons.io.FileUtils.writeStringToFile(sourceFile, "Sample content");
//Now copy from source to copy, the delete source.
org.apache.commons.io.FileUtils.copyFile(sourceFile, fileToCopy);
org.apache.commons.io.FileUtils.deleteQuietly(sourceFile);
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请访问:http: //commons.apache.org/io/api-release/org/apache/commons/io/FileUtils.html
您将要打开文件读写,因此:
RandomAccessFile raf = new RandomAccessFile("filename.txt", "rw");
String tmp;
while (tmp = raf.readLine() != null) {
// Store String data
}
// do some string conversion
raf.seek(0);
raf.writeChars("newString");
Run Code Online (Sandbox Code Playgroud)