Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的文件读取_Java_File Io_Java Io - Fatal编程技术网

Java中的文件读取

Java中的文件读取,java,file-io,java-io,Java,File Io,Java Io,嗨,有谁能给我推荐一种有效的方法来获取.dat文件中的记录数量吗。 目前,为了验证记录计数,我正在遍历整个文件。然后我再次迭代整个文件,一个接一个地处理记录。因此,我必须对整个文件进行两次迭代(用于验证记录计数和处理)。我想知道是否有更好的方法避免重复两次,因为记录数几乎为10K。如果您在其他模块中创建文件(或者至少您可以访问该代码),您可以在第一行写入记录计数,每当发生写入操作时,您都需要相应地更新记录计数 现在,在读取文件时,只有一次读取将验证记录计数,如果成功,则可以遍历文件 如果您正在其

嗨,有谁能给我推荐一种有效的方法来获取.dat文件中的记录数量吗。
目前,为了验证记录计数,我正在遍历整个文件。然后我再次迭代整个文件,一个接一个地处理记录。因此,我必须对整个文件进行两次迭代(用于验证记录计数和处理)。我想知道是否有更好的方法避免重复两次,因为记录数几乎为10K。

如果您在其他模块中创建文件(或者至少您可以访问该代码),您可以在第一行写入记录计数,每当发生写入操作时,您都需要相应地更新记录计数


现在,在读取文件时,只有一次读取将验证记录计数,如果成功,则可以遍历文件

如果您正在其他模块中创建文件(或者至少您可以访问该代码),您可以在第一行写入记录计数,并且每当发生写入操作时,您都需要相应地更新记录计数


现在,在读取文件时,只有一次读取将验证记录计数,如果成功,则可以遍历文件

我建议您尝试在同一个循环中实现记录计数功能和处理功能。。您所要做的就是将record count变量保持在循环外,并在循环内使用++运算符递增它,然后并排执行该功能。在while/for循环中,检查文件的结尾,一切都会就绪。

我建议您尝试在同一循环中实现记录计数功能和处理功能。。您所要做的就是将record count变量保持在循环外,并在循环内使用++运算符递增它,然后并排执行该功能。在while/for循环中,检查文件的结尾,所有内容都将就位。

您是自己创建文件的吗?如果是,那么它是一种流行的(如果不是标准的)机制,将元数据(如记录计数)存储在文件顶部或另一个文件中。为什么你不能按顺序处理这些记录呢?为什么必须先知道文件中的记录数?这完全取决于.dat文件的格式。可能记录的长度是固定的,在这种情况下,您可以将文件的长度除以记录的长度。正如本文其他地方所建议的,在文件格式中,通常会有一个包含记录数的头。或者重写您的逻辑,不需要预先记录的数量。您是否自己创建文件?如果是,那么它是一种流行的(如果不是标准的)机制,将元数据(如记录计数)存储在文件顶部或另一个文件中。为什么你不能按顺序处理这些记录呢?为什么必须先知道文件中的记录数?这完全取决于.dat文件的格式。可能记录的长度是固定的,在这种情况下,您可以将文件的长度除以记录的长度。正如本文其他地方所建议的,在文件格式中,通常会有一个包含记录数的头。或者重写您的逻辑,不需要预先记录的数量。谢谢您的建议sharma。在.dat文件中,头记录包含总记录计数。因此,首先我需要评估该文件是否包含头中提到的REOCRD数量。只有当计数相同时,我才必须处理该文件,否则无需处理。正如您所说,如果我在单循环中处理,例如,在处理一些第10k条记录时,我发现记录计数为在这种情况下无效我必须回滚我对10k记录所做的所有处理,而且处理这些记录所花费的时间也被浪费了。谢谢你的建议sharma。在.dat文件中,头记录包含总记录计数。因此,首先我需要评估该文件是否包含头中提到的REOCRD数量。只有当计数相同时,我才必须处理该文件,否则无需处理。正如您所说,如果我在单循环中处理,例如,在处理一些第10k条记录时,我发现记录计数为在这种情况下无效。我必须回滚我对10k条记录所做的所有处理,而且处理这些记录所花费的时间也被浪费了。dat的标头包含记录数。我需要验证.dat文件包含的记录是否与头记录中指定的记录数相同。验证后,我必须逐个处理REOCRD。.dat的头具有记录数。我需要验证.dat文件是否包含头记录中指定的记录数。验证后,我必须逐个处理REOCRD。