2

ファイルに書き込む必要があるフロート データが大量にFloatBufferあります (3 分もかかりません)。現在、要素ごとにファイルDataOutputStreamに書き込むために a が使用されています。FloatBufferこれは遅いです。できれば、 を使用したいのですが、 をFileChannelFloatBuffer変換できないようで、データを書き込むにはByteBufferバイトが必要なため、問題が発生します。FileChannel

データ ソースとして使用する代わりにFoatBuffers、配列を簡単に使用できます。しかし、代わりに ByteBuffer/array を簡単に使用することはできません。

この問題についての洞察をいただければ幸いです。ありがとう。

4

1 に答える 1

3

で始める代わりに、に書き込むために使用するを作成し、次に使用し、現在行っている方法で書き込み、次に関連情報を含むを書き出すことができますか?FloatBufferByteBufferFileChannelByteBuffer.asFloatBufferFloatBufferByteBuffer

個人的には、java.nioはかなり混乱しているといつも思っていますが、これはおそらく機能するはずです...

編集:別のユーザーがこれを試しましたが、機能しないことがわかりました:

ただし、falseになるasFloatBuffer()ため、機能しません。hasArray()要するに、以下は機能しません(どちらも機能しませんallocateallocateDirect

ByteBuffer.allocate(amount * 4).asFloatBuffer().asArray()

残念ながら、今は代替案を調査する時間がありません。

于 2011-07-05T18:56:31.720 に答える