将String写入.txt文件无效

时间:2016-06-25 09:20:45

标签: java io java-io

嘿我一直在尝试实现一个程序,它从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)  {}
    }

...

但不知何故甚至都没有创建文件或目录。 有任何想法吗?

3 个答案:

答案 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;如果要在用户的文件夹结构中创建文件