代码如下:
package javalean;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileTest {
public FileTest() {
}
public static void main(String[] args) {
FileAppendDemo();
};
public static void FileAppendDemo() {
String path = "E:\\apks\\my.txt";
// java文件输出流
FileOutputStream fos = null;
// File对象代表磁盘中实际存在的文件和目录
File file = new File(path);
try {
if (!file.exists()) {
// 在文件系统中根据保存在文件中的路径信息,创建一个新的空文件。如果创建成功就会返回true,如果文件存在返回false。注意:如果他已经存在但不是文件,可能是目录也会返回false。
boolean hasFile = file.createNewFile();
if (!hasFile) {
fos = new FileOutputStream(file);
}
} else {
// 以追加的方式创建一个文件输出流
fos = new FileOutputStream(file, true);
}
fos.write("test".getBytes());
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
参考资料:
1.public boolean createNewFile () 解释
Creates a new, empty file on the file system according to the path information stored in this file. This method returns true if it creates a file, false if the file already existed. Note that it returns false even if the file is not a file (because it's a directory, say).
在文件系统中根据保存在文件中的路径信息,创建一个新的空文件。如果创建成功就会返回true,如果文件存在返回false。注意:如果他已经存在但不是文件,可能是目录也会返回false。
2.file.createNewFile()有实际意义吗?
虽然我没有看过FileOutputStream这个类的源代码,但是我估计里面也是掉用了这个方法,有的时候你不使用流,但是也要在某个地方创建文件不就用到了吗,再说流是有开销的,你使用完了还要关,而且根据程序设计原则就是把不同功能的模块区分出来,文件类专门管理文件,文件流专门负责传输文件,这是语言设计,就像高级流关闭之后,包含的低级流也会自动关闭,但是还不是有关闭的方法,你说有什么意义呢