public double[,] ReadTxttest(string Path)
{
double[,] array = new double[30000,25];
int i = 0;
// 新建一个DataTable
DataTable tb = new DataTable();
// 添加一列用于存放读入的浮点数
DataColumn c = tb.Columns.Add("Value", typeof(double));
// 打开文件准备读取数据
StreamReader rd = File.OpenText(@Path);
string line;
while ((line = rd.ReadLine()) != null)
{
Stopwatch sw = new Stopwatch();
sw.Start();//开始计时
// 拆分出一行的所有用空格分割的数据项
string[] values = line.Split(' ');
//values为每行数据切割后的数组
// 将每个数据项转换成浮点数,并存入DataTable
foreach (string s in values) //s为行内元素
{
if (!string.IsNullOrEmpty(s))
{
// 转换成浮点数
double v = double.Parse(s);
// 存入DataTable
DataRow r = tb.NewRow();
r["Value"] = v;
tb.Rows.Add(v);
}
}
//计算每行的数据量
// Console.WriteLine(tb.Rows.Count);
int j = 0; // 列数
//输出DataTable中保存的数组
foreach (DataRow r in tb.Rows)
{
var k = (double)r["Value"];//获取行内元素
if (!string.IsNullOrEmpty(k.ToString()))
{
array[i, j] = k;
//Console.WriteLine(i.ToString() +"--" +j.ToString() + "--" + k.ToString());
}
else
{
array[i, j] = 0;
}
j = j + 1;
}
// Console.WriteLine("行数是:" + tb.Rows.Count);
sw.Stop();//停止计时
TimeSpan ts2 = sw.Elapsed;
Console.WriteLine("Stopwatch总共花费{0}ms.", ts2.TotalMilliseconds);
//清除每行数据
tb.Rows.Clear();
i = i + 1;
}
rd.Close();//读取数据完毕,关闭文件
return (array);
}
读取txt到double[,]二维数组中
最新推荐文章于 2021-10-11 19:56:24 发布