gpt4 book ai didi

c# - 使用 for 循环读取一个完整的文本文件

转载 作者:行者123 更新时间:2023-11-30 20:31:10 26 4
gpt4 key购买 nike

我正在尝试使用运行 100 次的 for 循环读取文本文件。

StreamReader reader = new StreamReader("client.txt");    
for (int i=0;i<=100;i++)
{
reader.readline();
}

现在,如果文本文件有 100 行,这就可以正常工作,但如果说 700 行,就不行了。所以我希望循环运行 100 次,但每次运行时读取文件的“1%”。我该怎么做?

最佳答案

如果文件大小不是太大,您可以:

string[] lines = File.ReadAllLines("client.txt");

string text = File.ReadAllText("client.txt");

一次读取 1% 有点棘手,我会采用逐行读取的方法:

var filename = "client.txt";
var info = new FileInfo(filename);
var text = new StringBuilder();

using (var stream = new FileStream(filename, FileMode.Open))
using (var reader = new StreamReader(stream))
{
while (!reader.EndOfStream)
{
text.AppendLine(reader.ReadLine());
var progress = Convert.ToDouble(stream.Position) * 100 / info.Length;
Console.WriteLine(progress);
}
}

var result = text.ToString();

但请注意,进度不会非常准确,因为 StreamReader.ReadLine(和等效的 ReadLineAsync)通常会读取不止一行 - 它基本上读取放入缓冲区,然后解释该缓冲区。这比一次读取一个字节要高效得多,但这确实意味着流将比严格来说需要进一步推进。

关于c# - 使用 for 循环读取一个完整的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43617175/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com