C#中如何逐行读取txt中的数据并赋值到一维数组中。

2024-12-01 04:57:50
推荐回答(4个)
回答(1):

(1)文本文件中的数据按行存放,每行一个数据,数据的数量不定,可多可少。从文本文件中读入的数据并转换后,先存放泛型集合List,最后再将List转换成一维数组。

(2)实现代码:文本文件 D:\data.txt 中存放的数据为浮点类型,每行一个数据

using System;
using System.Collections.Generic;
using System.IO;


namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string filePath = @"d:\data.txt";
            
            // 从数据文件读取数据
            float[] values = GetDataFromFile(filePath);
            
            // 显示数据
            for (int i = 0; i < values.Length; i++)
            {
                Console.WriteLine(values[i]);
            }

            Console.WriteLine("按Enter键退出");
            Console.ReadLine();
        }

        static float[] GetDataFromFile(string datafilePath)
        {
            // 创建泛型列表
            List list = new List();

            // 打开数据文件 D:\data.txt逐行读入
            StreamReader rd = File.OpenText(datafilePath);
            string line;
            while ((line = rd.ReadLine()) != null)
            {
                // 将读入的数据转换成float类型值
                float result;
                if (float.TryParse(line, out result))
                {
                    // 转换成功,加入到泛型列表
                    list.Add(result);
                }
                else
                {
                    // 转换失败,显示错误提示
                    Console.WriteLine("数据格式错误!");
                }
            }
            // 关闭文件
            rd.Close();

            // 将泛型列表转换成数组
            return list.ToArray();
        }
    }
}

回答(2):

只给最经典的。楼上的些方法都不能满足“逐行”这两个字
public IEnumerable GetStringArray()
{
StreamReader sr = new StreamReader("文件物理路径");
string str = null; string temp = null;
while ((temp = sr.ReadLine()) != null)
{
// System.Threading.Thread.sleep(3000);
yield return temp;
}
}

回答(3):

string[] strs = System.IO.File.ReadAllLines(Server.MapPath("/l.txt"), System.Text.Encoding.Default);
int[] numbers = new int[strs.Length];
int i = 0;
foreach (string str in strs)
{
numbers[i] = int.Parse(str);
i++;
}

全部手打 给分啊

回答(4):

var lines = File.ReadAllLines("filepath").ToList();这个是你要的字符串的数组
var intArr = lines.ConvertAll(o=> (int)o);//这是你要的数字类型的字符串
纯手打,没测过,应该没问题