【发布时间】:2016-08-28 14:51:46
【问题描述】:
我使用 RandomAccessFile 对象来读取 UTF-8 法语文件。我使用readLine 方法。
下面是我的 Groovy 代码:
while ((line = randomAccess.readLine())) {
def utfLine = new String(line.getBytes('UTF-8'), 'UTF-8')
++count
long nextRecordPos = randomAccess.getFilePointer()
compareNextRecords(utfLine, randomAccess)
randomAccess.seek(nextRecordPos)
}
我的问题是 utfLine 和 line 是一样的:重音字符保持像 é 而不是 é。未完成任何转换。
【问题讨论】:
-
不要使用 RandomAccessFile 读取字符。使用 BufferedReader,由 InputStreamReader 构造并指定正确的编码,本身由 FileInputStream 构造。
-
你能说明
randomAccess是如何构造的吗? -
@JBNizet 抱歉,我需要对我的文件使用随机访问权限。
-
@Tunaki 我使用 def randomAccess = new RandomAccessFile(f, 'r') 创建实例
标签: java groovy utf-8 randomaccessfile