Как я могу создать файл .csv неявно/автоматически, используя правильный метод, добавить текст в этот файл, существующий в памяти, а затем преобразовать в данные памяти в массив байтов?
string path = @"C:\test.txt";
File.WriteAllLines(path, GetLines());
byte[] bytes = System.IO.File.ReadAllBytes(path);
С таким подходом я создаю файл всегда (хорошо), записываю в него (хорошо), затем закрываю его (плохо), затем снова открываю файл из пути и читаю его с жесткого диска (плохо)
Как я могу улучшить это?
ОБНОВЛЕНИЕ
Один очень хороший подход:
using (var fs = new FileStream(@"C:\test.csv", FileMode.Create, FileAccess.ReadWrite))
{
using (var memoryStream = new MemoryStream())
{
fs.CopyTo(memoryStream );
return memoryStream .ToArray();
}
}
но я не могу написать текст в этот файл... просто байты...
ОБНОВЛЕНИЕ 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. Кто-нибудь знает почему?