类MakeDirectory
包含构造函数,在构造函数中我创建了一个目录,在该目录中我创建了一个文件。但即使文件和目录已成功生成,我也无法向新创建的文件写入任何内容。任何人都可以帮我弄清楚为什么我无法写入文件Anything.txt?
public class MakeDirectory {
MakeDirectory() throws IOException{
// Creates Directory
File mydir= new File("MyDir");
mydir.mkdir();
// Creates new file object
File myfile = new File("MyDir","Anyfile.txt");
//Create actual file Anyfile.txt inside the directory
PrintWriter pr= new PrintWriter(myfile);
pr.write("This file is created through java");
}
public static void main(String args[]) throws IOException {
new MakeDirectory();
}
}
答案 0 :(得分:2)
使用BufferedWriter
,您可以直接将字符串,数组或字符数据写入文件:
void makeDirectory() throws IOException {
// Creates Directory
File mydir = new File("MyDir");
mydir.mkdir();
// Creates new file object
File myfile = new File("MyDir", "Anyfile.txt");
//Create actual file Anyfile.txt inside the directory
BufferedWriter bw = new BufferedWriter(new FileWriter(myfile.getAbsoluteFile()));
String str = "This file is created through java";
bw.write(str);
bw.close();
}
答案 1 :(得分:2)
如果您想使用PrintWriter
,您需要知道它不会自动刷新。在write
之后,您需要flush
。另外,不要忘记关闭PrintWriter
!
PrintWriter pw = new PrintWriter(myFile);
pw.write("text");
pw.flush();
pw.close();
Java 7中可用的方法采用try-with-resources构造。使用此功能,代码如下所示:
try (PrintWriter pw = new PrintWriter("myFile")) {
pw.write("text");
} catch (FileNotFoundException e) {
e.printStackTrace();
}