3
私は、最大60KBのデータをバイト配列に格納できるスマートカードアプリケーションを作成しました。しかし、私は配列を複数回読むとエラーが発生し、データにアクセスできなくなります。Java Cardのデータを配列から読み取る
コード配列の作成:私は読み書きできるアプリを再インストールするときにのみ、
short data_length = Util.getShort(buf, (short)(offset_cdata + 2));
short file_offset = Util.getShort(buf, offset_cdata);
if(p2 == (byte)0x01) {
Util.arrayCopy(myfile.readDataFromFile(myfile.keepassData1, file_offset, data_length), (short)0, buf, (short)0, data_length);
} else if (p2 == (byte)0x02) {
Util.arrayCopy(myfile.readDataFromFile(myfile.keepassData2, file_offset, data_length), (short)0, buf, (short)0, data_length);
}
:
public void createFile(short fileID, short fileSize) {
short index = getFileIndex(fileID);
if(listFiles[index] == null) {
listFiles[index] = new byte[fileSize];
}
listfileSizes[index] = fileSize;
}
コード読み取りデータ:
public byte[] readDataFromFile(short fileID, short fileOffset, short length) {
short selFileSize = getFileSize(fileID);
byte[] data = new byte[length];
if (selFileSize < (short)(fileOffset + length)) {
ISOException.throwIt(ISO7816.SW_FILE_FULL);
}
Util.arrayCopy(getFile(fileID), fileOffset, data, (short)0, length);
return (byte[])data;
}
コードアクセス読み取りをデータがブロックされるまで少し時間がかかります。私はエラー6f00を取得します。
[OK]をthankyを私はそれをしようとします – schisskiss