java - 用于java(文件)的tellg() 和seekg (c++)

标签 java file

我需要更改文件在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/

相关文章:

java - 如何使 java 程序同时打印 out.println() 和 err.println() 语句?

java - 通过java程序读取另一个软件文件

python - 如何拆分特定范围内的列?

java - 为什么 java.io.Serializable 不是一个类?

java - 尝试将 hashmap getValue() 解析为 int 时出错

windows - 优化 - 使用 Windows API 从磁盘读取文件

c++ - 需要从png文件中读取数据并将其保存到新文件中,如何? C++

Jquery/Ajax 文件 uploader

java - 从构造函数调用抽象方法的安全替代方案

Java:有没有办法在 Windows 上使用 ESC 命令通过 USB 打印到收据打印机?