前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >c# 读取 txt 文件中数据(int)

c# 读取 txt 文件中数据(int)

作者头像
用户2434869
发布2018-09-12 10:38:53
6.1K0
发布2018-09-12 10:38:53
举报
文章被收录于专栏:yl 成长笔记

今天在学图的算法做测试是,需要读取文本文件中的点坐标,本来很简单的事情,折腾了半天,记录一下找到的一种简单粗暴的解决方法,以便以后查看。

 第一种方法 : StringReader

代码语言:javascript
复制
	string line = "";

        using (StreamReader sr = new StreamReader("graph.txt"))  // 读取文件所在路径
	{
		while (!sr.EndOfStream)                          // 判读是否读完
		{
			line = sr.ReadLine();                    // 读取一行
			string[] points = line.Split(' ');       // 拆分当前行
			foreach (string item in points)          // 转换 string 为 int
			{
				int.TryParse(item, out int vertice);
				Console.Write(vertice + " ");
			}
		}
	}

第二种方法:BinaryReader (转换为二进制文件读取)

代码语言:javascript
复制
            BinaryWriter bw;
            BinaryReader br;
            string line = "";
            bw = new BinaryWriter(new FileStream("converFromGraph", FileMode.Create));
            using (StreamReader sr = new StreamReader("graph.txt"))
            {
                while (!sr.EndOfStream)
                {
                    line = sr.ReadLine();
                    string[] points = line.Split(' ');
                    foreach (string point in points)
                    {
                        int.TryParse(point, out int vertice);
                        bw.Write(vertice);    // 写入二进制文件
                    }
                }
            }
            bw.Close();
            // 读取二进制文件
            br = new BinaryReader(new FileStream("mydata.dat", FileMode.Open));
            br.BaseStream.Seek(0, SeekOrigin.Begin);

            try
            {
                while (true) // 读完所有文件
                {
                    int x = br.ReadInt32();
                    Console.WriteLine(x);
                }
            }
            catch(System.IO.EndOfStreamExceptio)  // 读取文件完成,报异常
            {
                Console.WriteLine("读写完成");
            }

数据类型与字节长度:

byte -> System.Byte   (字节型, 占 1 个字节, 表示 8 位正整数, 范围 0 ~ 255)

char ->  System.Char  (字符型, 占 2 个字节, 表示一个 unicode 字符)

short -> System.Int16  (短整型, 占 2 个字节, 表示 16 位整数, 范围 -32,768 ~ 32,767)

uint ->  System.Uint32 (无符号整型, 占 2 个字节, 表示 16 位正整数, 范围 0 ~ 4,294,967,295)

int ->    System.Int32    (整型, 占 4 个字节, 表示 32 位整数, 范围 -2,147,483,648 ~ 2,147,483,647)

short  -> System.Int16 (短整型, 占 2 个字节, 表示  16 位整数,  -32,768 ~ 32,767)

float -> system.Single (单精度浮点型, 占 4 个字节)

double -> System.Double (双精度浮点型, 占 8 个字节)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-02-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档