C#使用StreamReader类读取汉字
我们上个例子中的代码:
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类读取汉字相关推荐
- C#使用StreamReader类读取文件文件
输入流用于从外部源读取数据.在很多情况下,数据源是磁盘上的文件或网络的某些位置.任何可以发送数据的位置都可以是数据源,比如网络应用程序.Web服务,甚至是控制台. 用来从文件中读取数据的类是Strea ...
- C# StreamReader类:读取文件
在 C# 语言中 StreamReader 类用于从流中读取字符串.它继承自 TextReader 类. StreamReader 类的构造方法有很多,这里介绍一些常用的构造方法,如下表所示. 构造方 ...
- C# 第七章『I/O数据流』◆第5节:数据流—StreamWriter类、StreamReader类
FileStream类的对象只能以字节的形式读取/写入数据,这就使操作变得非常困难,所以需要借用StreamWriter对象或StreamReader对象的方法来处理文件. 一.StreamWrite ...
- C#的StreamReader类使用说明
C#的StreamReader类使用说明 一:StreamReader类简单说明 二:StreamReader类的构造函数 三:StreamReader类的属性 四:StreamReader类的常用方 ...
- StreamReader类
StreamReader类用于从文件中读取数据,该类是一个通用类,可用于任何流,构造方法和StreamWrite类格式一样的. 创建方式有两种: 1.先创建Filestream类在创建StreamRe ...
- EpPlus读取生成Excel帮助类+读取csv帮助类+Aspose.Cells生成Excel帮助类
大部分功能逻辑都在,少量自定义异常类和扩展方法 ,可用类似代码自己替换 //EpPlus读取生成Excel帮助类+读取csv帮助类,epplus只支持开放的Excel文件格式:xlsx,不支持 xls ...
- C++编写Config类读取配置文件
老外写的一段代码,在Server中编写这个类读取配置文件比较实用 C++代码 //Config.h #pragma once #include <string> #include &l ...
- Myeclipse中导入项目后java类中汉字注释出现乱码问题(已解决)
Myeclipse中导入项目后java类中汉字注释出现乱码问题(已解决) 参考文章: (1)Myeclipse中导入项目后java类中汉字注释出现乱码问题(已解决) (2)https://www.cn ...
- android studio 写文件,在Android Studio中从我自己的类读取和写入文本文件
我一直在试图创建一个名为TextFileReaderWriter的类我想使用getters和setters来读取和写入文本文件,以便我可以调用类,并通过简单地使用setfileContents(som ...
最新文章
- Python学习笔记.OS学习笔记 OS操作系统(operating system)(一)
- 探索 ConcurrentHashMap 高并发性的实现机制
- Pycharm远程连接Linux服务器
- linux shell函数
- python 函数参数_python之函数(二)——函数参数详解
- linux 启动一个网站_在线试用 200 多种 Linux 和 Unix 操作系统
- home assistant gpio 温度计_Calsys 500BB辐射温度计
- 拒绝云服务商白嫖,Elasticsearch 和 Kibana 变更开源许可协议
- android 8.1.0怎么截屏,vivo Z1i怎么截屏?4种vivo Z1i截图方法
- python 之发送邮件服务[原著] 海瑞博客
- 2022张宇考研基础30讲 第十一讲 多元函数微分学
- ROS系列:八、图像消息和OpenCV图像之间进行转换-cv_bridge
- 高冷一字id_一个字网名 高冷一字id
- linux yield_带你通俗易懂的了解——Linux线程模型和线程切换
- 难译 | windbg 乐趣之道(下)
- dockerkubernetes教程,隔壁都馋哭了
- 计算机怎么显示各磁盘容量,win7系统打开计算机不显示磁盘容量的解决方法
- 昆石VOS2009/VOS3000 2.1.6.00 Web接口说明书
- html代码在线压缩成一行,HTML压缩 - Hito's Blog
- 隐藏index.php
热门文章
- 如何线程安全的使用HashMap
- Halcon算子:min_max_gray和gray_histo的区别
- pythondistinct教程_mongodb如何执行distinct
- 克莱姆森大学计算机排名,克莱姆森大学计算机科学computer science专业排名第401~500名(2020THE泰晤士高等教育世界大学排名)...
- 连云港职业技术学院有计算机系吗,连云港职业技术学院电子信息工程技术专业...
- 基于c语言的linux嵌入式开发入门
- webstorm小技巧
- python读取ini文件utf-16 le_Python文件编码不可以使用UTF16
- 查找_排序_思维导图
- 小游戏_猜数_JAVA