これが私が持っている機能です:
// Read a record from the specified RandomAccessFile
public void read( RandomAccessFile file ) throws IOException {
account = file.readInt();
byte b1[] = new byte[ 15 ];
file.readFully( b1 );
firstName = new String( b1, 0 );
firstName = firstName.trim();
byte b2[] = new byte[ 15 ];
file.readFully( b2 );
lastName = new String( b2, 0 );
lastName = lastName.trim();
balance = file.readDouble();
}
私の試験の 1 つで randomaccessfile から読み取ることができる必要があり、上記のコードは少しわかりにくいです。
これが私が推測していることです。間違っている場合は修正していただければ幸いです。
ファイルを取り込んfile
で にreadInt
割り当てますaccount
。次に、サイズ 15 の新しいバイトを作成し、ファイルから最初の名前をバイトに読み取り、次に に割り当てfirstname
ます。今ここに私が理解していないものがあります、何をしreadFully
ますか? 上記のコードは、 の次の値に進むことをどのように認識していますかlastName
。簡単に言えば、
byte b1[] = new byte[ 15 ];
file.readFully( b1 );
firstName = new String( b1, 0 );
firstName = firstName.trim();
VS
byte b2[] = new byte[ 15 ];
file.readFully( b2 );
lastName = new String( b2, 0 );
lastName = lastName.trim();
balance = file.readDouble();
なぜ同じ値を与えないのですか?各値 (名、姓など) の長さを推測していますか?