我们上个例子中的代码:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
class Program
{
static void Main(string[]args)
{
   try
   {
    FileStream aFile = new FileStream(@"c:\祝福.txt", FileMode.Open);
    StreamReader sr = new StreamReader(aFile);
    string strLine = sr.ReadLine();
    while(strLine != null)
    {
     Console.WriteLine(strLine);
     strLine = sr.ReadLine();
    }
    sr.Close();
   }
   catch (IOException ex)
   {
    Console.WriteLine(ex.Message);
    Console.ReadLine();
    return ;
   }
Console.ReadKey();

}
}

如果在文件中出现汉字,那么读出来就是乱码。为了解决这个问题,我们用如下代码:

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
class Program
{
static void Main(string[]args)
{
   try
   {
    string strLine;
    FileStream aFile = new FileStream(@"c:\祝福.txt", FileMode.Open);
    StreamReader sr = new StreamReader(aFile,System.Text.Encoding.GetEncoding("gb2312"));
    //如果有汉字,必需要加入第二个编码参数,要不读出来就是乱码,如果全是英文,可以不加这个参数。
    while ((strLine = sr.ReadLine())!= null)
    {
     Console.WriteLine(strLine);
     strLine = sr.ReadLine();
    }
    sr.Close();
   }
   catch (IOException ex)
   {
    Console.WriteLine(ex.Message);
    Console.ReadLine();
    return ;
   }
Console.ReadKey();

}
}

对以上代码我作出以下解释:

StreamReader sr= new StreamReader(aFile, System.Text.Encoding.GetEncoding("gb2312"));
//如果有汉字,必需要填入第二个编码参数,要不读出来就是乱码,如果全是英文,可以不要这个参数。

(strLine = sr.ReadLine())!=null
上式可以分解为如下:

1:   strLine=sr.ReadLine();

//sr.ReadLine()就是按行读数据,行之间用“\n”分割;strLine=sr.ReadLine(); 是一个赋值表达式,这个表达式也有一个结果,就是strLine的值。

2: if(strLine!=null) 则条件成立,当ReadLine读到null的时候给了strLine,这时strLine为null,就表示读取完成了。

C#使用StreamReader类读取汉字相关推荐

  1. C#使用StreamReader类读取文件文件

    输入流用于从外部源读取数据.在很多情况下,数据源是磁盘上的文件或网络的某些位置.任何可以发送数据的位置都可以是数据源,比如网络应用程序.Web服务,甚至是控制台. 用来从文件中读取数据的类是Strea ...

  2. C# StreamReader类:读取文件

    在 C# 语言中 StreamReader 类用于从流中读取字符串.它继承自 TextReader 类. StreamReader 类的构造方法有很多,这里介绍一些常用的构造方法,如下表所示. 构造方 ...

  3. C# 第七章『I/O数据流』◆第5节:数据流—StreamWriter类、StreamReader类

    FileStream类的对象只能以字节的形式读取/写入数据,这就使操作变得非常困难,所以需要借用StreamWriter对象或StreamReader对象的方法来处理文件. 一.StreamWrite ...

  4. C#的StreamReader类使用说明

    C#的StreamReader类使用说明 一:StreamReader类简单说明 二:StreamReader类的构造函数 三:StreamReader类的属性 四:StreamReader类的常用方 ...

  5. StreamReader类

    StreamReader类用于从文件中读取数据,该类是一个通用类,可用于任何流,构造方法和StreamWrite类格式一样的. 创建方式有两种: 1.先创建Filestream类在创建StreamRe ...

  6. EpPlus读取生成Excel帮助类+读取csv帮助类+Aspose.Cells生成Excel帮助类

    大部分功能逻辑都在,少量自定义异常类和扩展方法 ,可用类似代码自己替换 //EpPlus读取生成Excel帮助类+读取csv帮助类,epplus只支持开放的Excel文件格式:xlsx,不支持 xls ...

  7. C++编写Config类读取配置文件

    老外写的一段代码,在Server中编写这个类读取配置文件比较实用 C++代码   //Config.h #pragma once #include <string> #include &l ...

  8. Myeclipse中导入项目后java类中汉字注释出现乱码问题(已解决)

    Myeclipse中导入项目后java类中汉字注释出现乱码问题(已解决) 参考文章: (1)Myeclipse中导入项目后java类中汉字注释出现乱码问题(已解决) (2)https://www.cn ...

  9. android studio 写文件,在Android Studio中从我自己的类读取和写入文本文件

    我一直在试图创建一个名为TextFileReaderWriter的类我想使用getters和setters来读取和写入文本文件,以便我可以调用类,并通过简单地使用setfileContents(som ...

最新文章

  1. Python学习笔记.OS学习笔记 OS操作系统(operating system)(一)
  2. 探索 ConcurrentHashMap 高并发性的实现机制
  3. Pycharm远程连接Linux服务器
  4. linux shell函数
  5. python 函数参数_python之函数(二)——函数参数详解
  6. linux 启动一个网站_在线试用 200 多种 Linux 和 Unix 操作系统
  7. home assistant gpio 温度计_Calsys 500BB辐射温度计
  8. 拒绝云服务商白嫖,Elasticsearch 和 Kibana 变更开源许可协议
  9. android 8.1.0怎么截屏,vivo Z1i怎么截屏?4种vivo Z1i截图方法
  10. python 之发送邮件服务[原著] 海瑞博客
  11. 2022张宇考研基础30讲 第十一讲 多元函数微分学
  12. ROS系列:八、图像消息和OpenCV图像之间进行转换-cv_bridge
  13. 高冷一字id_一个字网名 高冷一字id
  14. linux yield_带你通俗易懂的了解——Linux线程模型和线程切换
  15. 难译 | windbg 乐趣之道(下)
  16. dockerkubernetes教程,隔壁都馋哭了
  17. 计算机怎么显示各磁盘容量,win7系统打开计算机不显示磁盘容量的解决方法
  18. 昆石VOS2009/VOS3000 2.1.6.00 Web接口说明书
  19. html代码在线压缩成一行,HTML压缩 - Hito's Blog
  20. 隐藏index.php

热门文章

  1. 如何线程安全的使用HashMap
  2. Halcon算子:min_max_gray和gray_histo的区别
  3. pythondistinct教程_mongodb如何执行distinct
  4. 克莱姆森大学计算机排名,克莱姆森大学计算机科学computer science专业排名第401~500名(2020THE泰晤士高等教育世界大学排名)...
  5. 连云港职业技术学院有计算机系吗,连云港职业技术学院电子信息工程技术专业...
  6. 基于c语言的linux嵌入式开发入门
  7. webstorm小技巧
  8. python读取ini文件utf-16 le_Python文件编码不可以使用UTF16
  9. 查找_排序_思维导图
  10. 小游戏_猜数_JAVA