私は、ディレクトリを作成し、そのディレクトリにいくつかのファイルを置くいくつかのJavaコードを書いています。ファイルが正常に最初の出口へのディレクトリニーズを作成するために、私は、しかし、ファイルが作成された順番を気にしないでください。
私は(新しめ)使用したいjava.nio.Filesのそれはファイルやディレクトリを操作するための方法の非常にエレガントなセットを持っているとして、APIを。
ことのniceながらFiles
クラスがあり、それはディレクトリが常に存在していないことを意味し、非ブロッキング。時期を決定する「権利」方法がありFiles.createDirectories(path)
完了しましたか?
(なぜ私のファイルのAPIのようである)が、ここでいくつかのサンプルコードです特に複雑ではありません。
Files.createDirectories(path);
Files.write(filename1, "some content".getBytes());
Files.write(filename2, "some other content".getBytes());
上記ではpath
あるかもしれない/tmp/blah
とfilename1
= /tmp/blah/foo
とfilename2
= /tmp/blah/bar
。
もちろん、私は(コモンズIOのような)いくつかの他のクラスやライブラリを使用して、これを行うことができますが、java.nio.Filesでのビルドはかなりいいです。
私はあなたが誤解だと思います。これらの動作は、実際に同期しているので、ここに行くために、あなたをしている良いです。Files.write
使用していますjava.io.OutputStream
例えば。
いくつかの名前の可能な実装に対処createDirectory
Linux用を。
Windowsでは、createDirectory
使用していますCreateDirectory WinAPIの関数を。
WindowsNativeDispatcher.CreateDirectory(var3.getPathForWin32Calls(), var4.address() /* Security descriptor */);
Buffers
、Channels
とSelectors
されている非ブロック。