我需要能够获取具有未知编码(例如,UTF-8、UTF-16,...)的文本文件并逐行复制它,并在进行时进行特定更改。在此示例中,我正在更改编码,但是这种处理还有其他用途。
我想不通的是如何确定最后一行是否有换行符!一些程序关心文件与这些记录之间的区别:
Rec1<newline>
Rec2<newline>
还有一个文件:
Rec1<newline>
Rec2
如何区分我的代码以便采取适当的措施?
using (StreamReader reader = new StreamReader(sourcePath))
using (StreamWriter writer = new StreamWriter(destinationPath, false, outputEncoding))
{
bool isFirstLine = true;
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
if (isFirstLine)
{
writer.Write(line);
isFirstLine = false;
}
else
{
writer.Write("\r\n" + line);
}
}
//if (LastLineHasNewline)
//{
// writer.Write("\n");
//}
writer.Flush();
}
注释掉的代码是我想要做的,但我不知道如何设置条件 lastInputLineHadNewline!请记住,我对输入文件编码没有先验知识。