【发布时间】:2010-06-01 19:57:36
【问题描述】:
我需要一种快速有效的方法来将带有数字的空格分隔文件读入数组。文件格式如下:
4 6
1 2 3 4 5 6
2 5 4 3 21111 101
3 5 6234 1 2 3
4 2 33434 4 5 6
第一行是数组 [rows 列] 的维度。以下行包含数组数据。
数据也可以不带任何换行符,如下所示:
4 6
1 2 3 4 5 6 2 5 4 3 21111 101 3 5 6234 1 2 3 4 2 33434 4 5 6
我可以读取第一行并使用行值和列值初始化一个数组。然后我需要用数据值填充数组。我的第一个想法是逐行读取文件并使用拆分功能。但是列出的第二种格式让我停下来,因为整个数组数据将一次全部加载到内存中。其中一些文件在 100 MB 中。第二种方法是分块读取文件,然后逐块解析它们。也许其他人有更好的方法来做到这一点?
【问题讨论】:
-
第二种格式是否会有额外的换行符?例如:
{ 8 6 } {1 2 3 4 5 6 2 5 4 3 2 1 3 5 6 1 2 3 4 2 3 4 5 6} {2 3 4 5 6 7 3 4 5 6 7 8 4 5 6 7 8 9 5 6 7 8 9 0} -
是的,第二种格式没有额外的换行符。