【发布时间】:2014-08-19 16:31:33
【问题描述】:
我需要做的是在内存中创建一个文件,写入该文件,然后像访问任何其他文件一样访问该文件。
这里我正在创建和使用一个实际的文件:
if (!File.Exists(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "TEST.csv")))
{
File.Create(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "TEST.csv")).Dispose();
using (TextWriter tw = new StreamWriter(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "TEST.csv")))
{
foreach (string[] array in listOfRows)
{
string dataString = array[0] + "," + array[1] + "," + array[2] + "," + array[3];
tw.WriteLine(dataString);
}
tw.Close();
}
}
else if (File.Exists(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "TEST.csv")))
{
using (TextWriter tw = new StreamWriter(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "TEST.csv")))
{
foreach (string[] array in listOfRows)
{
string dataString = array[0] + "," + array[1] + "," + array[2] + "," + array[3];
tw.WriteLine(dataString);
}
tw.Close();
}
}
//makes virtual table to be copied to database
DataTable dt = new DataTable();
string line = null;
int i = 0;
using (StreamReader sr = File.OpenText(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "TEST.csv")))
{
//etc etc etc
}
如您所见,目前我只是创建一个文件,然后将数据写入其中,然后使用该文件。如果我可以在虚拟内存中完成所有这些,对我来说会更好,这可能吗?
【问题讨论】:
-
使用
MemoryStream? -
为什么你觉得会好很多?除非存在特定的性能问题,否则您可能正在尝试解决不存在的问题。
-
请花一些时间来修正你的代码缩进 - 它现在到处都是。
-
“在虚拟内存中执行所有这些操作” - 如“我想使用数组而不是强类型类的实例,在没有正确编码的情况下将其写入 CSV,然后将整个文件重新读取到 @ 987654323@ 而不是添加单行”?每个部分都有更好的方法......甚至比使用自定义内存代码击败文件需要更多的努力,大多数人都愿意投入。
标签: c#