JarInputStream (JAR ファイルを含むバイト配列から構築) があり、そこから特定のファイルを読み取りたいと考えています。そのため、含まれている ZipEntries を繰り返し処理し、ファイルを検索します。次に、ファイルをバイト配列に書き込もうとします。
ただし、ファイルはどういうわけか完全に読み取られていません。ファイルシステムに書き込んでテキストエディターで開くと、正しく読み取られた最初の数行の後にNULLが含まれています。
コードは次のようになります。
JarInputStream is = new JarInputStream(new ByteArrayInputStream(_jarFile));
ZipEntry entry = is.getNextEntry();
while (entry != null) {
if (entry.getName().endsWith(".xyz")) {
// read the *.xyz file and load it into a byte array
int size = (int) entry.getSize();
byte[] _xyzFile = new byte[size];
is.read(_xyzFile, 0, size);
break;
}
entry = is.getNextEntry();
}
is.close();
変数にはsize
間違いなく正しいバイト数が含まれているため、ほんの数行で読み取りが停止する理由がわかりません。