2024-07-15 10:31:26 +08:00

69 lines
2.0 KiB
C#

namespace BinnaryfFileSave
{
using System;
using System.IO;
class Program
{
static void Main()
{
int count = int.MaxValue/2;
double[] doubleArray = new double[count];
Parallel.For(0, count, i =>
{
double angle = i * 2 * Math.PI / count;
doubleArray[i] = Math.Sin(angle);
});
// 写入double数组到二进制文件
WriteDoubleArrayToBinaryFile("doubleArray.bin", doubleArray);
// 从二进制文件读取double数组
double[] readDoubleArray = ReadDoubleArrayFromBinaryFile("doubleArray.bin");
Console.WriteLine("原始 double 数组:");
foreach (double value in doubleArray)
{
Console.Write(value + " ");
}
Console.WriteLine();
Console.WriteLine("从文件读取的 double 数组:");
foreach (double value in readDoubleArray)
{
Console.Write(value + " ");
}
Console.WriteLine();
}
static void WriteDoubleArrayToBinaryFile(string filePath, double[] array)
{
using (BinaryWriter writer = new BinaryWriter(File.Open(filePath, FileMode.Create)))
{
foreach (double value in array)
{
writer.Write(value);
}
}
}
static double[] ReadDoubleArrayFromBinaryFile(string filePath)
{
using (BinaryReader reader = new BinaryReader(File.Open(filePath, FileMode.Open)))
{
long fileSize = new FileInfo(filePath).Length;
int elementCount = (int)(fileSize / sizeof(double));
double[] array = new double[elementCount];
for (int i = 0; i < elementCount; i++)
{
array[i] = reader.ReadDouble();
}
return array;
}
}
}
}