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

我的文本文件是每行一个整数,希望编写一个函数将文件中的数字逐行读入一个字符串数组中再转化成数字数组。可以随时补充问题。特别好可以加分。... 我的文本文件是每行一个整数,希望编写一个函数将文件中的数字逐行读入一个字符串数组中再转化成数字数组。可以随时补充问题。特别好可以加分。 展开
 我来答
freeeeeewind
推荐于2016-05-29 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1329万
展开全部

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

(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<float> list = new List<float>();

            // 打开数据文件 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();
        }
    }
}
wucong60
推荐于2018-01-05 · TA获得超过251个赞
知道小有建树答主
回答量:230
采纳率:0%
帮助的人:168万
展开全部
只给最经典的。楼上的些方法都不能满足“逐行”这两个字
public IEnumerable<string> GetStringArray()
{
StreamReader sr = new StreamReader("文件物理路径");
string str = null; string temp = null;
while ((temp = sr.ReadLine()) != null)
{
// System.Threading.Thread.sleep(3000);
yield return temp;
}
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c56cded
2013-01-29 · TA获得超过1940个赞
知道小有建树答主
回答量:870
采纳率:0%
帮助的人:247万
展开全部
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++;
}

全部手打 给分啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
15...2@163.com
2013-01-29 · TA获得超过118个赞
知道小有建树答主
回答量:308
采纳率:0%
帮助的人:124万
展开全部
var lines = File.ReadAllLines("filepath").ToList();这个是你要的字符串的数组
var intArr = lines.ConvertAll(o=> (int)o);//这是你要的数字类型的字符串
纯手打,没测过,应该没问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式