我需要更改文件在java中的偏移量(用于读取) 在c++中,我们有tellg()和seekg来改变文件的偏移量 我能为java做什么? 我尝试 bufferedreader2=bufferedreader1 但是当我通过 readline() 更改 bufferedreader2 的偏移量时,bufferedreader1 的偏移量被更改!!
对不起,我的英语不是很好。
最佳答案
您不能为此使用 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);
关于java - 用于java(文件)的tellg() 和seekg (c++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33274109/