在C#中从内存中读取数据

时间:2018-02-22 08:46:13

标签: c# sql for-loop memory entity

我正在处理需要从文件中读取数据的内容。正如你在下面看到的,我正在浏览带有for循环的文件列表,搜索特定的十六进制字符,我用空格替换字符。 稍后,我用行覆盖原始文件,因为行现在没有十六进制字符,但我不允许覆盖原始字符。我也不允许将行保存为源目录中的新文件(原始文件所在的文件)。

var fileList = Directory.GetFiles(SourceDirectory, "*.*", SearchOption.TopDirectoryOnly)

foreach (var file in fileList)
{
    var lines = File.ReadAllLines(file);

    for(var i = 0; i < lines.Length; i++)
    {
        if (lines[i].Contains("\u001A"))
        {
            lines[i] = lines[i].Replace("\u001A", " ");
        }
    }

    System.IO.File.WriteAllLines(file, lines);
    var grkFile = new GenericRkFile<FileTypes.FinancialAdvisor, FileTypes.Plan, FileTypes.PlanFund, FileTypes.Header, FileTypes.Trailer>();
    grkFile.LoadData(file);
}

由于grkFile.LoadData()是一个文件,我不能将行作为值传递。 我的问题是,我可以以某种方式将行保存为内存中的文件或类似的东西,并使用它传递给grkFile.LoadData()吗?

1 个答案:

答案 0 :(得分:0)

因为您依赖于API您无法更改的选项,可以在临时位置创建临时文件,使用正确的数据填充它,加载它然后将其删除。 .NET提供了一些辅助方法,可以让您的生活更轻松。它们位于System.IO namespace内。这个在临时用户文件夹中创建临时文件非常有用:

Path.GetTempFileName() 

有关详细信息,请查看:Sytem.IO.Path