【发布时间】:2023-03-27 04:32:02
【问题描述】:
我在 c# 中有大量文件(超过 300 MB)。我需要有效的方式来逐行读取文件,因为一旦我尝试读取它需要 30 多分钟,而目标时间约为 3 分钟。我尝试了 File.ReadAllBytes ,它成功且非常快速地读取文件并将其加载到字符串中。但在那之后,逐行处理字符串需要很长时间。有没有更好的方法或更快的方法来做到这一点。
提前致谢。
【问题讨论】:
-
听起来你的问题不是加载,而是处理。您没有发布相关代码。
-
我们在谈论什么样的流程?
-
File.ReadLines(由 wudzik 建议)绝对是一个好主意。但是“300MB”真的没有那么大。问:这个 300MB 的文件有多少行?更重要的是: 问:你在每一行的循环中到底在做什么? Q:有什么办法可以优化“per line”处理?
-
根据当前信息,您的问题与许多“逐行读取大文件”重复。请注意,与从文件读取直接相关的实际问题(从本地磁盘读取 300MB)不太可能需要几秒钟,而不是几分钟 - 提供一些关于您实际使用字符串做什么的信息(可能在您分析代码后的单独问题中)提供必要的信息)。