問題タブ [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 投票する
0 に答える
1185 参照

java - Commons VFSをラップするjava.nio.FileSystemの実装?

FTP、HTTP、SFTP、Zip ファイル、または単にローカル ファイル システムなど、さまざまな への接続を許可するApache Commons VFSが存在することは知っています。FileSystemFileSystem

いくつかの検索 (ほとんどは Google および VFS サイトで) で何も結果が得られなかった後、java.nio.FileSystemVFS をラップする実装があったのではないかと考えています。

私の使用例は次のとおりです。ファイルの内容を読み取るか、ディレクトリの内容を一覧表示して、この内容で何かを行う必要がある個人的なプロジェクトがあります (インデックス作成など)。

私は現在java.nio.Path、読んでいるファイルのパスを表すために使用していますが、後でSSH接続で機能する機能を追加したいと思います(これは「今」必要ありませんが、質問はまだ興味があります)。

0 投票する
3 に答える
9736 参照

java - java.nio.file.FileSystemException: /proc: 開いているファイルが多すぎます

このコードを使用して、proc ファイルシステム内のすべてのフォルダーを読み取ります

しばらくすると、このエラーが発生します

このループはファイルを閉じずに開いているようです。各サイクルの実行後にファイルを閉じる方法はありますか?

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

java - ネストされたアーカイブの有効な java.net.URI は存在しますか?

あまりお勧めできませんが、基本的に.zipファイル ( .ear.war.jarなど) に名前が変更されたアーカイブ形式を、jar: URI スキームを使用して読み取ることができます。

たとえば、次のコードは、uri変数が単一の最上位アーカイブに評価される場合、たとえば次の場合にuriうまく機能します。jar:file:///Users/justingarrick/Desktop/test/my_war.war!/

ただし、URI にネストされたアーカイブが含まれている場合 (たとえば、等しい場合( .war内に.jargetFileSystem ))、およびのnewFileSystem呼び出しは で失敗します。 IllegalArgumentExceptionurijar:jar:file:///Users/justingarrick/Desktop/test/my_war.war!/some_jar.jar!/

ネストされたアーカイブ ファイルの有効なjava.net.URIスキームはありますか?

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

java - IO パフォーマンス: セレクター (NIO) と AsynchronousChannel (NIO.2)

不思議なことに、NIO.2 非同期 IO パフォーマンスと java.nio.channels.Selector を介した NIO の多重化 IO の使用に対する明確な答えを Google で見つけることができませんでした。

だから、私の質問は: NIO.2 AsynchronousChannel は NIO セレクターよりも優れたパフォーマンスを持っていますか? もちろん、さまざまな負荷プロファイル (同時接続数/平均接続寿命/トラフィック) の下でのサーバー側に興味があります。

私が見つけた唯一の情報は、Windows IOCP が Windows select よりわずかに優れているということです。

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

java - java.nio.file.Files.newInputStream で作成されたストリームを閉じる必要がありますか?

ストリームのチュートリアルでは、 から取得したストリームを閉じることについては何も述べられていませんFiles.newInputStream( path )。あいまいなだけ:

返されたストリームが非同期的にクローズ可能または中断可能かどうかは、ファイル システム プロバイダーに大きく依存するため、指定されていません。

このコンテキストでの「非同期」とは何ですか? ストリームを明示的に閉じた場合、または別のスレッドがストリームを非同期で閉じた場合は?

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

java - FileSystem エントリをメモリ マップト ファイル (NIO2) にロードする最も高速でクリーンな方法

zip/jar エントリをメモリに抽出して、zip ストリーム/FS を閉じ、一時コピーを処理せずにファイルを JVM に保持できるようにしたいと考えています。

1 つのオプションは Files.readAllLines(Path pathToZipFSentry) を使用することですが、大きなファイルに対して多くのペナルティを課す可能性があるバッファ付きリーダーを使用しているようです。

だから私はJava NIO2でそれを行う方法を研究していますが、その方法はFileChannelsを介してMappedByteBufferで終わっているようです。

私は RandomAccessFile.getChannel() を使用できません。これは、リテラル ファイルではなく、仮想ファイル システムのパスから取得したためです。Files.newByteChannel(rscPath, StandardOpenOption.READ) を使用してから (fileChannel.)map() を使用することはできません。これは、インターフェイスでマップを取得していない SeekableByteChannel を返すためです...

Java8 の Path(s)/File(s)/FileSystem(s)/FileChannel(s) による、これに対する 1 つまたは 2 つの高レベルのライナーはありますか? 私は InMemoryFile file = Files.loadIntoMem(Path) のようなものを期待します 私は閉じるオプションを1時間探していました...

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

java - AsynchronousServerSocketChannel を使用して複数のポートをバインドするにはどうすればよいですか?

非同期通信モデルでサーバーを作成しようとしていて、複数のポートをバインドしたいのですが、複数の bind メソッドを呼び出すと、「AlreadyBoundException」というエラーがスローされます。これを行う方法はありますか?これが私のコードです