Java 仅从Pagesize文件读取记录

Java 仅从Pagesize文件读取记录,java,file-io,io,random-access,readblock,Java,File Io,Io,Random Access,Readblock,我是一个初学者,我有一个文件大小可变的记录;每行有两个字段 i、 e.一个是7-15位数字的键,然后是空格,后面是一个字符串,每个记录的大小也是可变的 我试图将页面大小的字节读入缓冲区,然后处理它们 问题是,如果我使用Java.RanomAccessFile并使用seek方法到达特定行,那么我将使用ReadFully方法将这1024个字节读入缓冲区。我已经编写了将字节转换为int和字节转换为字符串的函数,但问题是我不知道有多少字节构成7-15位数字,有多少字节构成字符串。当你说一行时,你是说每行

我是一个初学者,我有一个文件大小可变的记录;每行有两个字段 i、 e.一个是7-15位数字的键,然后是空格,后面是一个字符串,每个记录的大小也是可变的

我试图将页面大小的字节读入缓冲区,然后处理它们


问题是,如果我使用Java.RanomAccessFile并使用seek方法到达特定行,那么我将使用ReadFully方法将这1024个字节读入缓冲区。我已经编写了将字节转换为int和字节转换为字符串的函数,但问题是我不知道有多少字节构成7-15位数字,有多少字节构成字符串。

当你说一行时,你是说每行之间都有一个行分隔符吗?如果是这种情况,您可以使用BufferedReader的readline()方法。这将生成一个字符串,该字符串为1行,没有行分隔符。

否问题是我有15 gb的数据要读取。所以,如果我逐行阅读,这将需要时间,这就是为什么我想从我的文件中逐页阅读;此外,我不确定记录的页面大小是否合适。我必须编写一些代码,尝试读取定义页面大小的记录,直到页面未满为止。如果进一步添加的记录超过了页面大小,则不要从文件中取出该记录。非常感谢。如果是这样的话,那么您必须咬紧牙关,读入缓冲区,然后查看是否已读入整行。如果没有,则读取更多相同大小的缓冲区,直到读取整行。