Java是否将读取位置保存在InputStream中?



我在读取数据的过程中,Java '保存'您的字节读取,还是我必须使用偏移量?

FileInputStream确实可以保存您的位置。

如果你有一个3字节的文件,0xff 0x00 0x0c,调用:

System.out.println(fis.read());
System.out.println(fis.read());
System.out.println(fis.read());

将输出:

255
0
12

你只需模仿@WhiteFang的写作解决方案。

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[]

顺便说一句,使用writeUTF/readUTF使得写文件名的长度是多余的。此外,如果您不打算在这些信息之后写入任何内容,则不需要记录文件的数量。

如何标记你的位置http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html#mark(int)

相关内容

  • 没有找到相关文章

最新更新