如何使用正确的方法隐式/自动创建 .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 文件中。有谁知道为什么?