問題タブ [nio2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
4686 参照

java - OS が POSIX に準拠しているかどうかを確認する方法

私は、一時ファイルを作成し、それらを別の場所にコピーするクロスプラットフォーム アプリケーションを作成しています。(デフォルトでは、所有者のみが一時ファイルへの読み取りアクセス権を持っています。)次のようにPOSIXファイルのアクセス許可を使用してみました:

ただし、これにより、非 POSIX プラットフォームでは例外が発生します。

他のプラットフォームとの互換性を損なうことなく、必要に応じてファイルのアクセス許可を使用できるように、簡単なチェックを追加したいと考えています。

0 投票する
4 に答える
2338 参照

java - URLからパスに変換する簡単なNIO2のみの方法はありますか

取得した URL からディレクトリ (コンテンツを含む) をコピーしたい

jar:file:/D:/../some.jar!/someparentまたはのいずれかを返しますfile:/D:/../someparent

FileSystem(jar intern dirsの場合)と再帰的にコピーすることを考えましたFiles.walkFileTree(..)

jar:file:/D:/../some.jar!/folderFileSystem NIO2 のみを取得するように変更することは可能ですか?

0 投票する
2 に答える
13217 参照

java - 特定の日付/時刻に基づいてファイルを一覧表示する DirectoryStream.Filter の例

例として、60日より古いディレクトリ(およびそのすべてのサブディレクトリ)の下にあるすべてのファイルをリストすることができる場所のDirecoryStream.Filter例を調査しようとしています。newDirectoryStream

上記のコードでは、DirectoryStream.filter?
特定のタイムスタンプよりも古いファイルを削除しようとしていて、Java 1.7より前のファイルFile.listFiles()がハングするプロジェクトにいるので、これは大きな助けになります。

Files.walkFileTree()オプションを提供できますか?

0 投票する
1 に答える
1340 参照

java - DatagramChannel、ブロッキング モード、および CPU

次のコード スニペットを取得します。

このコードは にあり、最大 12 の s (したがって 12 のスレッド)Callableを作成して、Callable12 の異なるポートから異なるデータを含むマルチキャスト パケットを取得します。3~8秒ごとにネットワーク上で放送されている情報から読み取るだけです。

12 個のポートを継続的にプールすると (情報を待ち、情報を取得するなど)、CPU の 1 つを 100% 消費します。

JVisualVM で実行をプロファイリングすると、実行時間の 90% が 、java.nio.channels.DatagramChannel#receive()より正確には に費やされていることがわかりcom.sun.nio.ch.DatagramChannelImpl#receiveIntoBuffer()ます。

  1. ブロッキングモードがCPUを大量に消費する理由がよくわかりません。

  2. ブロッキング モードの代わりに sを使用する記事をいくつか読みましたが、 withがブロッキング チャネルより消費量が少ないSelector理由がよくわかりません。while (true)Selector

0 投票する
1 に答える
5696 参照

java - Java NIO2 の一時ファイルからの Files.copy での AccessDeniedException

FilesJava 7 と新しいクラスに慣れてきました。

ある時点でファイルの内容を置き換える必要がある小さなアプリケーションを作成しています。何か問題が発生した場合にターゲット ファイルが消去されないように、一時ファイルを使用しました。AccessDeniedExceptionただし、実際のコピーを実行すると、常にエラーが発生します。

これが私のコードです:

getCurrentConfigFile()ターゲット ファイルのパス作成を処理します。

コードを実行すると、.batスクリプトを介して実行され、標準のコマンド プロンプトまたは昇格の両方でエラーが発生します。ターゲット ファイルはC:\temp\tests、同じ Windows ユーザーで作成したディレクトリにあります。

ターゲットへの直接書き込みが機能するため、問題は一時ファイルからの読み取りにあるようです。次はどこを見ればいいですか?

0 投票する
1 に答える
232 参照

java - Nio2 ウォッチサービス

私はnio2のファイルウォッチャーについて学んでいます.サンプルファイルには、ファイルをマップしてキーを監視するマップ変数があり、次のコードがありました:

この例によると、監視サービスが時折誤検知 (アプリケーションが監視しているファイルにマップされていないキー) を返す可能性があると信じるようになりましたが、Oracle リファレンスではそのようなチェックは行われません。本当に辞書が必要かどうかはわかりません。nio2 の経験がある人は、これに光を当てることができますか?

0 投票する
0 に答える
440 参照

java - マウントされた CIFS 共有内のファイルに対する権限を設定する - NIO.2

次の例のように、作成時に一連の属性を追加しようとしています。このコードは、マウントされた CIFS 共有に特定の権限 (「rw-rw-r--」) を持つ POSIX ファイル システムに新しいファイルを作成します。

簡単なコードを実行した後、ファイルは作成されましたが、そのアクセス許可は

必要なものの代わりに(コード「rw-rw-r--」を見てください)

誰かがその問題で私を助けることができますか?

0 投票する
2 に答える
313 参照

java - NIO.2 非同期チャネルのコーディング ガイドライン

たとえば、100500 バイトを配列に読み込みたい:

ここでの LambdaAdapter は、CompletionHandler を 3 つの引数を持つ関数型インターフェイスに変換する単純なラッパーです。

ともかく。オフセットは「アタッチメント」パラメーターに入れることができ、ラムダは事前に宣言してフィールドとして再利用できます。ただし、結果として得られるコードは常に醜い醜い醜いものです。

このような単純なタスクでも、許容できるソリューションを作成できませんでした。読み取りが書き込みとインターリーブされ、複雑なロジックでラップされる複雑なプロトコルの場合はどうなるでしょうか。

非同期APIを処理する適切な方法を知っている人はいますか? ここで Scala が世界を救うことができると思われる場合は、気軽に使用してください。

0 投票する
1 に答える
363 参照

java - ファイルが変更されるとJava NIO 2 DirectoryStreamリストが変更されます

ディレクトリ内のファイルを一覧表示するときに奇妙な動作に気付きました。私の状況では、データベースに保存するtxtファイルのリストがあり、それらのデータファイルに対応して、dbのメタプロパティとして関連付けられている各txtのタグを含むxmlファイルがあります。

ディレクトリからファイルを一覧表示し、xml ファイルを読み取ると、ストリームがどのように変化し、既に db に追加されているファイルが再度一覧表示されます。ファイル名はデータベース内の ID であり、一意です。それらを再リストすると、主キーの制約に違反します。

リスティングが乱れる理由を知りたいですか?

現在、一部のファイルでは正常に動作しますが、すでにリストされているファイルが再び戻ってくることがあります。同様に 1.txt が処理されて db に保存されましたが、後のループで再びリストされます。