不明なエンコーディング (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! 覚えておいてください、私は入力ファイルのエンコーディングについてアプリオリな知識を持っていません.