Java 对以UTF格式编写的文件执行二进制搜索

Java 对以UTF格式编写的文件执行二进制搜索,java,Java,是否有一种方法可以对以UTF格式存储的文件按排序顺序执行二进制搜索。我能够使用RandomAccessFile对文本文件执行二进制搜索。首先我找出文件的长度,然后使用fseek跳转到文件的中间位置,跳转到中间位置后我读取字节。但是,我发现以UTF格式存储的文件不可行,因为UTF格式中的第一个字符是随机的。还有,使用DataInputStream,我无法跳转到文件中的特定位置。有可能对这样的文件进行二进制搜索吗。如果是,则使用哪些类。是,这是可能的。如果跳转到文件中间,首先需要转到最近的记录分隔符

是否有一种方法可以对以UTF格式存储的文件按排序顺序执行二进制搜索。我能够使用RandomAccessFile对文本文件执行二进制搜索。首先我找出文件的长度,然后使用fseek跳转到文件的中间位置,跳转到中间位置后我读取字节。但是,我发现以UTF格式存储的文件不可行,因为UTF格式中的第一个字符是随机的。还有,使用DataInputStream,我无法跳转到文件中的特定位置。有可能对这样的文件进行二进制搜索吗。如果是,则使用哪些类。

是,这是可能的。如果跳转到文件中间,首先需要转到最近的记录分隔符,然后使用记录分隔符后面的文本

根据您的确切文件格式,可以使用换行符、制表符或类似的字符作为记录分隔符

如果记录分隔符是Unicode数字低于32的字符(NL、CR、TAB实现),则查找记录分隔符很容易。然后您就不需要关心多字节UTF-8编码(用于定位分隔符)。如果它是一种宽字符Unicode格式,那么它也不会太难


DataInputStream是随机访问的错误类。(流媒体有点像随机访问的反面。)请看一看。

这是如何连接到Swing或Java ee的?它是纯J2SE,可以通过命令行应用程序完成。