69 lines
2.0 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|