C#向一个文件写入内容,当写入内容大于4G时,后面的数据内容是错误的
private static void SaveFile(string savePath, string openPath)
{
using (var outputStream = File.Create(savePath))
{
for (int i = 0; i < 120; i++)
{
using (var inputStream = File.OpenRead(openPath))
{
if (i != 0)
inputStream.Seek(3600, SeekOrigin.Begin);
inputStream.CopyTo(outputStream);
}
}
}
}
程序说明:我的原始数据大约40M,复制120次是为了大于4G;跳过3600字节是为了跳过后面文件的文件头;文件存储如下图所示:
蓝色部分为文件头占3600字节,橙色为道头,占240字节,灰色为数据体,每个数据占4字节(一般为float格式,但这不重要)。
存储顺序为:第一步:文件头3600字节;第二步:第一道道头,240字节,第一道(第一列)数据;第三步:第二道,第三道……