どのように私は、Java 7のファイルのAPIを使用して操作の完了を待つのですか?

grahamrb:

私は、ディレクトリを作成し、そのディレクトリにいくつかのファイルを置くいくつかの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/blahfilename1= /tmp/blah/foofilename2= /tmp/blah/bar

もちろん、私は(コモンズIOのような)いくつかの他のクラスやライブラリを使用して、これを行うことができますが、java.nio.Filesでのビルドはかなりいいです。

LppEdd:

私はあなたが誤解だと思います。これらの動作は、実際に同期しているので、ここに行くために、あなたをしている良いです。Files.write使用していますjava.io.OutputStream例えば。

いくつかの名前の可能な実装に対処createDirectoryLinux用を。
Windowsでは、createDirectory使用していますCreateDirectory WinAPIの関数を。

WindowsNativeDispatcher.CreateDirectory(var3.getPathForWin32Calls(), var4.address() /* Security descriptor */);

BuffersChannelsSelectorsされている非ブロック

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=202049&siteId=1