【发布时间】:2019-07-04 19:02:12
【问题描述】:
我正在读取一个带有逗号分隔值的文件,当它拆分为一个数组时,每行将有 10 个值。我希望文件有换行符,以便
line = bReader.readLine()
会给我每一行。但是我的文件没有换行符。相反,在第一组值之后有很多空格(准确地说是 465),然后下一行开始。
所以我上面的 readLine() 代码是一次性读取整个文件,因为没有换行符。请建议如何最好地有效地处理这种情况。
【问题讨论】:
-
可以是固定大小记录的文件吗?可能是 512 字节左右。然后可以重复读取固定大小的字节缓冲区。
-
每行有 11 个值,以逗号分隔。后跟 465 个空格字符。然后是下一组逗号分隔值。但是每行中的字符数可能会有所不同,但它始终是 11 个值(10 个逗号)。文件大小也可能有所不同。
-
“高效”是什么意思?在最少的代码或操作性能的意义上?后者应该很好,因为 BufferedReader 会有效地将文件加载到内存中。如果您不想在内存中处理非常大的文件,那么一种有效的方法是将较小的部分读入缓冲区,例如一次几 kB。
-
高效是指性能方面的,我也不清楚如何解决这个问题。就像我应该用“\ n”替换465个空格字符然后逐行读取?读取 512 字节会读取我的第一行吗?抱歉,我无法掌握,但代码示例会有所帮助
标签: java performance file bufferedreader