我需要在java中更改文件的偏移量(用于读取) 在c ++中我们有tellg()和seekg来改变文件的偏移量 我能为java做些什么? 我尝试bufferedreader2 = bufferedreader1但是当我用readline()更改bufferedreader2的偏移量时,bufferedreader1的偏移量会改变!!
对不起,我的英语不是很好。
答案 0 :(得分:1)
您不能使用InputStream
/ Reader
,因为它们仅用于顺序访问。
旧样式将使用RandomAccessFile
(Java 1 +)。
新的风格是使用SeekableByteChannel
(Java 7 +)。
请注意,两者都是字节偏移,而不是字符偏移。
// Old style
File file = new File("foo/bar.txt");
RandomAccessFile f = RandomAccessFile(file, "r");
long pos = f.getFilePointer();
f.seek(pos);
// New style
Path path = Paths.get("foo/bar.txt");
SeekableByteChannel ch = Files.newByteChannel(path); // Defaults to read-only
long pos = ch.position();
ch.position(pos);