【问题标题】:Reading records from file of Pagesize only仅从 Pagesize 的文件中读取记录
【发布时间】:2011-11-16 16:41:53
【问题描述】:

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

我正在尝试仅将页面大小的字节读取到我的缓冲区中,然后对其进行处理。

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

【问题讨论】:

    标签: java file-io io random-access readblock


    【解决方案1】:

    当您说一行时,您的意思是每行之间都有一个行分隔符吗?如果是这种情况,您可以使用类似 BufferedReader 的 readline() 方法。这会给你一个没有行分隔符的 1 行字符串。

    【讨论】:

    • 没有问题,我有 15 GB 的数据要读取。所以如果我逐行阅读需要时间,这就是为什么我想从我的文件中逐页阅读;此外,我不确定记录如何适合页面大小。我必须编写一些代码,尝试在定义的页面大小中读取我的记录,直到页面没有变满。如果进一步添加的记录超出页面大小,则不要从文件中获取该记录。谢谢!
    • 如果是这种情况,那么您必须硬着头皮读入缓冲区,然后查看是否已读取整行。如果没有,请读取更多相同大小的缓冲区,直到读取整行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多