2011-10-23 11 views
2

私は、「高度な」JavaコースでNIOパーシステントアレイを作成するタスクを割り当てられました。この質問はそうではありません「方法」これを行うが、「何」は「NIO永続」によって暗示されます。これは私にとって新しいコンセプトです。これまでのところ、基本的には、コード内の一般的な配列に情報を動的に格納するのではなく、配列の情報をディスク上のバイトの形式であらかじめ決められたサイズのブロックに格納することを意味しています。私が混乱していることは、あなたがバイトに格納しようとしている情報からどうやっていくのかです。そして、それらのバイトをJavaのNIO経由でファイルに書き込む方法は何ですか?NIOパーシステントアレイ:Java

TL - 誰かがJavaを説明できますNIO永続的アレイ一言で言えば、どのように私は一から地面を建設するために行く必要がありますか?

ご意見ありがとうございます。

EDIT:JavaのNIOのAPIに精通

目的:ここでの単語のための割り当ての説明、単語です。

要件

PersistentArrayクラスを作成するには、JavaのNIOを使用します。クラスは 次のメソッドをサポートする必要があります。

静的な無効作成(文字列のファイル名は、int型がbufferSizeは) - 空の 永続的な配列を作成します

静的な無効(文字列filename)を削除 - 持続的な配列を削除

PersistentArray open(String fileName) - 永続配列 に関連付けられているファイルを開き、getsおよび putsの永続配列を準備します。

ボイドプットは(bufferID、バッファバッファをint型) - (バッファサイズは、配列を作成するときに使用 サイズと同じでなければならないことに注意してください) bufferIDの場所にバッファを格納します。

バッファget(int bufferID) - バッファIDを指定して、bufferIDに関連付けられた場所に以前に格納されたバッファ を取得します。

int getNextID() - バッファーを格納するために使用された最大IDを超えて1を返します。

ボイド近い() - 予想通り、すべての方法が振る舞うことを示すJUnitテストを作成し、また、永続的なアレイ

に関連付けられたファイルを閉じます。

インストラクターと作業内容を確認してください。

答えて

1

何:
「NIO永続アレイ」のようなものはありません。インストラクターはNIO APIについて知ってもらいたいと思っています(これは古いIO APIよりも優れていて高速です)。

割り当てのコンテキストでは、インストラクタによって指定された仕様に準拠するこのクラスを実装する必要があります。派手なものではなく、単にnioを使ってデータ(あなたの場合は配列)をファイルに「持続させる」クラスを実装するだけです。

この執筆者がお手伝いします。 File I/O: old I/O or NIO. Which is better?

TL; DR:NIO持続性に特別な意味はありません。メモリにはない アレイを作成するだけでなく、NIOを使用してコンテンツを保持します。
は今、それは多くの方法で実施することができるのRandomAccessFileを使用することを推奨していた場合には、ピーターの答えはかなり良いです:どのように

+0

洞察をお寄せいただきありがとうございます.NIOでちょっと読んでみましょう:] –

+0

コードを開始します。コードは*デザインです。 – zengr

2

私は彼/彼女がメモリマップされたファイルについて話していると仮定できます。 RandomAccessFileを使用して、配列のようにランダムにアクセスできるMappedByteBufferを作成できます。 ByteBufferに対する変更は永続化されます。

+0

私はオリジナルの投稿を編集して、割り当ての正確な言い回しを含めるようにしました。 –

+0

したがって、MappedByteBufferをラップしたいとします。 ;) –

関連する問題