問題タブ [filechannel]
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.
java - ファイル チャネルを使用してファイルにランダム アクセスしますか?
FileChannel
から取得するFileInputStream
と、 position メソッドを使用してファイルポインターを自由に移動できることがわかりました。FileChannel
の機能を提供するということですRandomAccessFile
か?
java - FileChannel のデメリット -> BufferedReader -> Reader
FileChannel
will は より速くBufferedReader
、BufferedReader
will はReader
becauseFileChannel
よりも速く、BufferedReader
データを受信するためのいくつかの中間ステップを省略しています。
私の質問は次のとおりです。利点は明らかですが、ウェブ上の情報源でその欠点について述べられているものはありません。(FileChannel
からBufferedReader
、BufferedReader
からReader
)。間の中間ステップを切り取ると、なんと問題でしょう。
では、どなたか教えてください。
@:そして、出力についても同じ質問です。それらのデメリットを教えてください。
ありがとう :)
java - NIOセレクターを使用してファイルを追跡する方法、つまり、行がファイルに追加されると、チャンネルが選択されて行を読み取ることができますか?
GC ログをリダイレクトできないため、-Xloggc を使用してファイルにリダイレクトし、何らかのファイル チャネルを介してセレクタ内のこのファイルの内容を取得するオプションが残されています。基本的に、ファイルに行が追加されると、セレクターがそれらを読み取るようにトリガーされます。そうすれば、プログラムで GC ログを取得できます。NIOを使用してそれを行うことは可能ですか?
java - 原因不明の ClosedByInterruptException。Java ファイルチャネルのバグ?
まれに、本番アプリケーションClosedByInterruptException
でFileChannel
. Java のドキュメントによると、これは、呼び出し元のスレッドが中断された状態にある場合に発生します。興味深いことに、私のアプリケーションはスレッドに割り込むことはありません。これは、アプリケーションの下から発生しているようです。おそらく何らかのシステム割り込み?誰かがこの問題に遭遇しましたか?
java - Java-NIO: オフセットアドレス / NullPointer で FileChannel.read() を使用する
FileChannel.read(ByteBuffer[],int,int)
java-NIOのメソッドを使用してファイルの特定の部分だけを読み取る方法を知っている人はいますか?
read() メソッドの実行中に NullPointer をスローします。バッファーは十分大きくなければなりません。offsetAddress は 0、endAddress は 255 で、ファイルサイズはそれをはるかに超えています。
java - java FileChannelがファイルに書き込み、最後に\nを追加する
FileChannelを使用してログを作成しようとしています。何らかの理由で、ファイルに\n文字が含まれていません。
私の機能:
これは私の出力ファイルです:
java - Java:FileChannelを使用してファイルに書き込むと、ファイルが縮小しますか?
FileChannelを使用して、ファイルの特定の位置に特定のバイトを書き込もうとしました。しかし実際には、ファイルは変更を書き込む最後の位置に縮小されます。私はこのようにします:
これが私が得た出力です:
どこが悪いのか誰か教えてもらえますか?
java - android : あるファイルを別のファイルにコピーするためのより高速なソリューション
BufferedInputStream を使用してファイルをコピーしています。ループで byte[] をコピーします。これは、大きなファイルでは非常に遅くなります。
FileChannel 構造を見ました。これも使ってみました。FileChannel が IOSTreams を使用するよりも優れているかどうかを知りたいです。テスト中、大幅なパフォーマンスの向上は見られませんでした。
または、他のより良い解決策があります。
私の要件は、srcファイルの最初の1000バイトを変更してターゲットにコピーし、srcファイルの残りのバイトをターゲットファイルにコピーすることです。
ファイルチャンネルあり
I/O ストリームの使用
java - 同じFileChannelを使用して読み取りと書き込みを行う方法はありますか?
私はJavaNIOを初めて使用します。FileChannel
オブジェクトには読み取りメソッドと書き込みメソッドの両方があることがわかります。FileChannel
しかし、ある時点で同じものを使用して読み書きすることはできません。そうする方法はありますか?
java - Java-ファイルから読み取られているバイトを処理します
Javaの1つのスレッドでFileInputStreamなどの読み取り呼び出しを行い、2番目のスレッドで同時にロードされているバイトを処理する方法はありますか?私はいくつかのことを試しました-私の現在の試みでは、これを実行しているスレッドが1つあります:
そして、ロードされているバイトにアクセスしたい2番目のスレッド。明らかに、最初のスレッドでの読み取り呼び出しは、バッファーがいっぱいになるまでブロックされますが、その時点より前にバッファーにロードされたバイトにアクセスできるようにしたいです。現在、私が試したものはすべてバッファがあり、読み取りが完了するまでバッキング配列は変更されていません-これは、このスレッドのポイントを無効にするだけでなく、データがどこかの中間バッファにロードされ、後で私のバッファにコピーされていることを示唆しています。ダフト。
1つのオプションは、配列への小さな読み取りの束を実行し、後続の読み取りでオフセットを使用することですが、これにより余分なオーバーヘッドが追加されます。
何か案は?