파일 크기가 너무 크지 않으면 다음을 수행 할 수 있습니다
string[] lines = File.ReadAllLines("client.txt");
또는 한 번에 1 % 읽기
string text = File.ReadAllText("client.txt");
나는 독서 라인의 접근 방식으로 갈 것, 조금 까다 롭습니다 선으로 :
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
)는 종종 단일 행 이상을 읽습니다. 기본적으로 버퍼를 읽고 버퍼를 해석합니다. 한 번에 한 바이트 씩 읽는 것보다 훨씬 효율적이지만 스트림이 엄밀히 말하면 필요한 것보다 더 멀리 나아갈 것입니다.
전체 파일을 메모리로 읽어 들인 다음 거기에서 조작하는 이유가 있습니까? – maccettura
https://msdn.microsoft.com/en-us/library/94223t4d.aspx 그러나 File.ReadAllLines 훨씬 좋네요. –
진행률 표시 줄에 "파일 읽기"진행 상태가 표시됩니다. 그래서 for 루프에서 100 번 실행해야합니다. 전체 파일을 읽지 않는 이유는 무엇입니까? –