我正在编写一个 Java 应用程序,它需要以字节为单位获取字符偏移量,给定纯文本中的行号和列号。我想知道是否有现有的库可以这样做,因为我不想重新发明轮子。
谢谢!
以字节为单位的字符偏移量是一种非常奇怪的野兽。你想要字符,还是想要字节?这是一个编码问题。对于 UTF-8,它甚至因不同的字符而异(因为a
它是一个字节,对于ä
两个)。当你只使用 ASCII 时你是安全的,但你没有这么说。
如果确实使用 UTF-8,则必须从头开始读取整个文件才能执行这种计算。我不知道具有特定功能的库,但在 Java 中使用适当的InputStreamReader
.
InputStream具有跳过 n 个字节的方法。如果你想跳过固定大小的行,你总是可以计算要跳过的字节数。否则你需要执行 false nextLine
onBufferedReader