正しい方法を使用して.csvファイルを暗黙的に/自動的に作成し、メモリに存在するファイルにテキストを追加してメモリに変換するにはバイト配列へのデータ?私は常にファイル(良い)を作成し、そのアプローチで テキストファイルを作成してメモリに書き込んで、一度にバイト配列に変換する
string path = @"C:\test.txt";
File.WriteAllLines(path, GetLines());
byte[] bytes = System.IO.File.ReadAllBytes(path);
、その後、(悪い)それを閉じて(良い)に書き込み、その後のパスからファイルを再度開いて、ハードディスクからそれを読んで(悪い)
どうすれば改善できますか?
UPDATE
一つのほぼ良いアプローチは次のようになります。
using (var fs = new FileStream(@"C:\test.csv", FileMode.Create, FileAccess.ReadWrite))
{
using (var memoryStream = new MemoryStream())
{
fs.CopyTo(memoryStream);
return memoryStream .ToArray();
}
}
が、私はそのファイルストリームにテキストを書き込むことができないです...ちょうどバイト...
UPDATE 2
using (var fs = File.Create(@"C:\temp\test.csv"))
{
using (var sw = new StreamWriter(fs, Encoding.Default))
{
using (var ms = new MemoryStream())
{
String message = "Message is the correct ääüö Pi(\u03a0), and Sigma (\u03a3).";
sw.Write(message);
sw.Flush();
fs.CopyTo(ms);
return ms.ToArray();
}
}
}
文字列メッセージがtest.csvファイルに永続化されません。なぜ誰も知っていますか?
どのようにあなたがしたTextWriterを渡すんFileStreamに? FileStreamを作成すると、それを渡すことはできません。 – HelloWorld
TextWriterはストリームを入力として受け入れますので、FileStreamを直接使用できます。 – Xilmiki
私は元の質問を誤解していると思います。私はテキストファイルを作成したいだけではありません...私が望む "テキスト"データでバイト[]も考慮してください。 – HelloWorld