2016-06-25 21 views
1

ちょっと私は、GUIから値を受け取り、txtファイルを出力するはずの私の書いたクラスの別のプログラムにそれらを与えるプログラムを実装しようとしてきました。 GUIと他のクラスはうまく動作しますが、GUIから他のクラスに値を取得することができないか、クラスメンバが単に起動しません。 私はこれまでのところ、これを持っている:文字列を.txtファイルに書き込むことができません

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

素晴らしく働くます。mkdir();' 'true'にまたは' false'のを返して:

今私が持っています。 'false'を' file.getParentFile()。mkdirs(); 'と置き換えてみてください。 –

答えて

1

フォルダ構造全体を作成する場合は、mkdirsではなくmkdirを使用する必要があります。

使用file.getParentFile().mkdirs();

ます。mkdir()

は、この抽象パス名が示すディレクトリを作成します。

mkdirs()

必要だが、存在しない親ディレクトリを含めて、この抽象パス名がディレクトリを作成します。この操作が失敗した場合、必要な親ディレクトリのいくつかを作成できた可能性があります。

this answerを読んでください。あなたは私がのfileutilsパッケージIO appacheコモンズで問題を修正し、ユーザーのフォルダ構造

0

は、代わりに「はuser.dir」の

File file = new File(
     System.getProperty("user.home") + File.separator + Name + File.separator + Spec + "Text.txt"); 

を試してみてください。

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) {} 
    } 

をそして、それはチェック何 `file.getParentFile()

+0

ヒントをお寄せいただきありがとうございます。 –

1

でファイルを作成する場合は

関連する問題