FileInputStream fis = new FileInputStream(files[0]);
DataInputStream dis = new DataInputStream(new BufferedInputStream(fis));
int numFiles = dis.readInt();
int numBytesInName = dis.readInt();
String filename = dis.readUTF();
long numBytesInFile = dis.readLong();
// loop to read bytes into a byte[]
# 1 楼答案
标记你的位置怎么样http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html#mark(int)
# 2 楼答案
FileInputStream确实保存了您的位置
如果您有一个包含3个字节的文件,
0xff 0x00 0x0c
,则调用:将输出:
# 3 楼答案
你只是想模仿@WhiteFang的写作解决方案
顺便说一句,使用writeUTF/readUTF会使写入文件名的长度变得多余。此外,如果您不打算在此信息之后写入任何内容,则不需要记录文件数