10

OK、これは簡単なはずだと思いますが、Javaでのファイル作成の基本的な何かが明らかに欠けています。私はこれを持っています:

File someFile = new File("someDirA/someDirB/someDirC/filename.txt");

ファイルに書き込みたいだけです。ただし、someDirAは存在しますが、someDirB(したがって、someDirCとfilename.txt)は存在しません。これを行う:

BufferedWriter writer = new BufferedWriter(new FileWriter(someFile));

をスローしFileNotFoundExceptionます。まあ、えー、冗談じゃない。やっぱり作ろうと思っています。FileWriterオブジェクトをインスタンス化する前に、ファイルパスをコンポーネントに分割し、ディレクトリを作成してからファイルを作成する必要がありますか?

4

2 に答える 2

20

最初に、前述のすべてのディレクトリを作成する必要があります。そして、これがその方法です。存在させたいパスを表すFileオブジェクトを作成してから、そのオブジェクトで.mkdirs()を呼び出す必要があります。次に、必ず新しいファイルを作成してください。

final File parent = new File("someDirA/someDirB/someDirC/");
if (!parent.mkdirs())
{
   System.err.println("Could not create parent directories ");
}
final File someFile = new File(parent, "filename.txt");
someFile.createNewFile();
于 2010-03-29T21:33:02.333 に答える
2

JavaのFileクラスで「mkdirs」メソッドを使用できます。mkdirsはディレクトリを作成し、必要に応じて存在しない親ディレクトリを作成します。

http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html#mkdirs%28%29

于 2010-03-29T21:35:10.603 に答える