我有一个TextReader对象。 现在,我想将TextReader的整个内容流式传输到一个文件。我无法使用ReadToEnd()并将所有内容全部写入文件,因为内容可能很大。 有人可以给我一个样本/小费如何在块中做到这一点?将TextReader流式传输到文件
谢谢。
我有一个TextReader对象。 现在,我想将TextReader的整个内容流式传输到一个文件。我无法使用ReadToEnd()并将所有内容全部写入文件,因为内容可能很大。 有人可以给我一个样本/小费如何在块中做到这一点?将TextReader流式传输到文件
谢谢。
using (var textReader = File.OpenText("input.txt"))
using (var writer = File.CreateText("output.txt"))
{
do
{
string line = textReader.ReadLine();
writer.WriteLine(line);
} while (!textReader.EndOfStream);
}
我认为在这里do-while循环会更好 –
您的代码无效。您不应该在'do'之前读取一行,并且读取和写入的顺序是混合的 –
就是这样。循环阅读器,直到它返回null
并完成您的工作。一旦完成,关闭它。
String line;
try
{
line = txtrdr.ReadLine(); //call ReadLine on reader to read each line
while (line != null) //loop through the reader and do the write
{
Console.WriteLine(line);
line = txtrdr.ReadLine();
}
}
catch(Exception e)
{
// Do whatever needed
}
finally
{
if(txtrdr != null)
txtrdr.Close(); //close once done
}
// assuming stream is your TextReader
using (stream)
using (StreamWriter sw = File.CreateText(@"FileLocation"))
{
while (!stream.EndOfStream)
{
var line = stream.ReadLine();
sw.WriteLine(line);
}
}
只是在循环使用的ReadLine(),直到它返回*空*。 –