Java是否在InputStream中保存读取位置?
我正在读取数据,Java是“保存”您读取的字节,还是必须使用偏移量?FileInputStream确实保存了您的位置 如果您有一个包含3个字节的文件,Java是否在InputStream中保存读取位置?,java,byte,offset,Java,Byte,Offset,我正在读取数据,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的写作解决方案 FileInputS
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会使写入文件名的长度变得多余。此外,如果您不打算在这些信息之后写入任何内容,则无需记录文件数。哦,来吧!发布最后一个问题后,您可以阅读文档并进行尝试。您将很快看到,在读取一些数据后,该位置将得到提升。也许你想检查一下。