可以在内存中创建文件吗?

Pet*_*ter 1 c#

我需要做的是在内存中创建一个文件,写入该文件,然后像访问任何其他文件一样访问该文件。

在这里,我正在创建和使用一个实际文件:

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
}
Run Code Online (Sandbox Code Playgroud)

如您所见,目前我只是创建一个文件,然后将数据写入其中,然后使用该文件。如果我能在虚拟内存中完成所有这些对我来说会好得多,这可能吗?

Bra*_*NET 5

好吧,您可以使用MemoryStream. 你不会用这种方法得到“线条”,但它很接近。

话虽如此,如果您立即编写和读取文件,这听起来就像您陷入困境。文件用于持久性

如果您只想在内存中存储一​​系列字符串的集合,您想使用 aStringBuilder或者可能只是一个List<T>.