0

作成中のゲームのセーブ ファイルを作成しようとしていますが、これらのファイルには複数の txt ファイルが含まれています。私の問題は、フォルダーとtxtファイルの両方が指定したディレクトリに作成されないことです。フォルダーのコードは次のとおりです。

File folde = new File("c:/Users/Mike/Desktop/Saves/bob/" + save);
    try{
    if (!folde.exists()) {
        if (folde.mkdirs()) {
            System.out.println("Created new save file");
        } else {
            System.out.println("Did not create new save file");
        }
    }
    }finally{
        System.out.println("Folder found.");
    }

ファイルのコードは次のとおりです。

try{
        PrintWriter writer = new PrintWriter("c:/Users/Mike/Desktop/javafiles/Saves/" + save + "/Stats.txt", "UTF-8");
        writer.println(Stats.Health);
        writer.println(Stats.Strength);
        writer.println(Stats.Constitution);
        writer.println(Stats.Dexterity);
        writer.println(Stats.Inteligence);
        writer.println(Stats.Wisdom);
        writer.println(Stats.Charisma);
        writer.close();
    } catch (IOException x) {
            System.err.println("Could not create save file.");

    }

クラス全体は次のとおりです。

package files.maintain;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
import vars.all.*;

public class SaveFile {
MainStart Start = new MainStart();
Stats Stats = new Stats();
public void save(){
    Scanner in = new Scanner(System.in);
    System.out.println("What should I save as?");
    String save = in.nextLine();

    File folde = new File("c:/Users/Dave/Desktop/Saves/bob/" + save);
    try{
    if (!folde.exists()) {
        if (folde.mkdirs()) {
            System.out.println("Created new save file");
        } else {
            System.out.println("Did not create new save file");
        }
    }
    }finally{
        System.out.println("Folder found.");
    }
    try{
        PrintWriter writer = new PrintWriter("c:/Users/Dave/Desktop/javafiles/Saves/" + save + "/Stats.txt", "UTF-8");
        writer.println(Stats.Health);
        writer.println(Stats.Strength);
        writer.println(Stats.Constitution);
        writer.println(Stats.Dexterity);
        writer.println(Stats.Inteligence);
        writer.println(Stats.Wisdom);
        writer.println(Stats.Charisma);
        writer.close();
    } catch (IOException x) {
            System.err.println("Could not create save file.");

    }
}
}

コンソールから得られる応答は次のとおりです。

  • 何として保存すればよいですか?
  • ボブ
  • フォルダが見つかりました。
  • 保存ファイルを作成できませんでした。*

私の入力は太字です。この Web サイトを確認しました: http://www.mkyong.com/java/how-to-create-directory-in-java/ および Java チュートリアル: http://docs.oracle.com/ javase/tutorial/essential/io/file.html しかし、うまくいきませんでした。

ありがとう!

4

1 に答える 1

0

パスが同じでない場合は、パスを一致させます。文字列定数を使用する代わりに、単一の JavaFileオブジェクトを使用します。次の 2 つの矛盾したプレフィックスを使用しています。

"c:/Users/Dave/Desktop/Saves/bob/"
"c:/Users/Dave/Desktop/javafiles/Saves/"

また、例外処理とレポートを改善する必要があります。元の例外と、プログラムが実行している修正 (または緊急) アクションについて、できるだけ多くの情報をログに記録してください。

于 2013-08-24T21:02:23.350 に答える