嘿我一直在尝试实现一个程序,它从GUI获取值并将它们提供给我编写的类中的另一个程序,它应该输出一个txt文件。 GUI和其他类工作正常,但我似乎无法从GUI获取值到其他类或类成员根本无法启动。 到目前为止我有这个:
import java.io.*;
//
//some code
//
public static void SaveTextToFile(String Name,String Spec, String Text ){
try{
File file = new File("user.dir"+ File.separator + Name + File.separator + Spec + "Text.txt");
file.getParentFile().mkdir();
FileWriter writer = new FileWriter(file);
writer.write(Text);
writer.flush();
writer.close();
} catch
(IOException e) {}
}
...
但不知何故甚至都没有创建文件或目录。 有任何想法吗?
答案 0 :(得分:1)
如果要创建整个文件夹结构,则必须使用mkdirs
而不是mkdir
。
使用file.getParentFile().mkdirs();
<强> MKDIR()强>
创建此抽象路径名指定的目录。
<强> mkdirs()强>
创建此抽象路径名所指定的目录,包括任何必要但不存在的父目录。请注意,如果此操作失败,则可能已成功创建了一些必要的父目录。
阅读this answer。
答案 1 :(得分:1)
我用appache commons io FileUtils包解决了这个问题。
现在我有:
public static void SaveTextToFile(String Name,String Spec, String Text ){
try{
File file = new File(Name + File.separator + Spec + "Text.txt");
org.apache.commons.io.FileUtils.forceMkdirParent(file);
org.apache.commons.io.FileUtils.writeStringToFile(file, Text, "utf8");
} catch
(IOException e) {}
}
它的效果非常好
答案 2 :(得分:0)
尝试
File file = new File(
System.getProperty("user.home") + File.separator + Name + File.separator + Spec + "Text.txt");
而不是&#34; user.dir&#34;如果要在用户的文件夹结构中创建文件