我正在嘗試使用for循環運行100次來讀取文本文件。使用for循環讀取完整的文本文件
StreamReader reader = new StreamReader("client.txt");
for (int i=0;i<=100;i++)
{
reader.readline();
}
現在,如果文本文件有100行但如果讓說,700所以我希望循環100次運行,但在每個run.How讀「1%」的文件能正常工作會我那樣做?
我正在嘗試使用for循環運行100次來讀取文本文件。使用for循環讀取完整的文本文件
StreamReader reader = new StreamReader("client.txt");
for (int i=0;i<=100;i++)
{
reader.readline();
}
現在,如果文本文件有100行但如果讓說,700所以我希望循環100次運行,但在每個run.How讀「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
)通常會讀取的不僅僅是一行 - 它基本上讀入一個緩衝區,然後解釋該緩衝區。這比一次讀取單個字節要有效得多,但這確實意味着流將比嚴格意義上的進步更進一步。
許多很多謝謝,我能夠使它像這樣工作。 –
@chris歡迎您:) – Andrei
是否有一個原因,你不能將整個文件讀入內存然後從那裏操作它? – maccettura
https://msdn.microsoft.com/en-us/library/94223t4d.aspx但File.ReadAllLines更好。 –
一個進度條顯示「文件讀取」進度。所以我需要它在for循環中運行100次。這就是爲什麼我沒有閱讀整個文件... –