C#使用StreamReader类读取文件文件
输入流用于从外部源读取数据。在很多情况下,数据源是磁盘上的文件或网络的某些位置。任何可以发送数据的位置都可以是数据源,比如网络应用程序、Web服务,甚至是控制台。
用来从文件中读取数据的类是StreamReader。同StreamWriter一样,这是一个通用类,可以用于任何流。
StreamReader对象的创建方式非常类似于StreamWriter对象。创建它的最常见方式是使用前面创建的FileStream对象:
FileStream fs = new FileStream("test.txt",FileMode.Open);
StreamReader sr = new StreamReader(fs);
同StreamWriter一样,StreamReader类可以直接在包含具体文件路径的字符串中创建:
StreamReader sr = new StreamReader("test.txt");
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();
}
}
FileStream构造函数找不到该文件,就会抛出异常。
这个应用程序非常类似于前面的应用程序。其明显的区别就是,它是在读取数据,而不是写入数据。同前面一样,必须导入System.IO命名空间,才能访问需要的类。
使用ReadLine()方法从文件中读取文本。这个方法读取回车符之前的文本,并以字符串的形式返回结果文本。当到达文件尾时,该方法就返回空值,通过这种方法可以测试文件是否已到达了尾部。注意使用while循环时,在执行循环体的代码之前进行检查,确保读取的行不为空,这样就只显示文件的有效内容:
strLine = sr.ReadLine();
while(strLine != null)
{
Console.WriteLine(strLine);
strLine = sr.ReadLine();
}
ReadLine()方法不是在文件中访问数据的惟一方法。StreamReader类还有许多读取数据的方法。
读取数据最简单的方法是Read()。此方法将流的下一个字符作为正整数值返回,如果到达了流的结尾处,则返回–1。使用Convert实用类可以把这个值转换为字符。在上面的示例中,程序的主体可以按如下方式编写:
StreamReader sr = new StreamReader(aFile);
int nChar;
nChar = sr.Read();
while(nChar != -1)
{
Console.Write(Convert.ToChar(nChar));
nChar = sr.Read();
}
sr.Close();
对于小型文件,可以使用一个非常方便的方法,即ReadToEnd()方法。此方法读取整个文件,并将其作为字符串返回。在此,前面的应用程序可以简化为:
StreamReader sr = new StreamReader(aFile);
strLine = sr.ReadToEnd();
Console.WriteLine(strLine);
sr.Close();
这似乎非常容易和方便,但必须小心。将所有的数据读取到字符串对象中,会迫使文件中的数据放到内存中。应根据数据文件的大小禁止这样处理。如果数据文件非常大,最好将数据留在文件中,并使用StreamReader的方法访问文件。
转载于:https://www.cnblogs.com/tanding/archive/2012/07/02/2572691.html
C#使用StreamReader类读取文件文件相关推荐
- 在javaweb中通过servlet类和普通类读取资源文件
javaweb有两种方式读取资源文件 在Servlet中读取,可以使用servletContext,servletContext可以拿到web所有的资源文件,然后随便读,但是这种方法不常用,尽量少在S ...
- php循环读取excel每个单元格,php使用PHPexcel类读取excel文件(循环读取每个单元格的数据)...
error_reporting(E_ALL); date_default_timezone_set('Asia/ShangHai'); include_once('Classes/PHPExcel/I ...
- C# 使用XmlDocument类读取XML文件
经过3天的测试验证发现使用XmlDocument读取XML文件的各个节点的值很容易实现. 测试XML文件如下 products.xml: <Table> <Product> & ...
- php使用PHPexcel类读取excel文件(循环读取每个单元格的数据)
error_reporting(E_ALL); date_default_timezone_set('Asia/ShangHai'); include_once('Classes/PHPExcel/I ...
- C#使用StreamReader类读取汉字
我们上个例子中的代码: using System; using System.Collections.Generic; using System.Text; using System.IO; clas ...
- JAVA读取Properties文件对象常用方法总结
实际开发中,总是会需要用到配置文件的,常用的就是properties.xml.json.比如,使用jdbc访问数据库时,我们就可以将driver.url.username.password这几个参数记 ...
- java读取csv文件_使用扫描仪读取Java中的CSV文件
java读取csv文件 We can use Java Scanner Class to read CSV File in java. 我们可以使用Java扫描程序类在Java中读取CSV文件. 读取 ...
- multipartfile转excel_关于MultipartFile类接收EXCEL文件的问题
现有的做法是用MultipartFile类读取excel文件以后用transferTo()转存到硬盘上,请问能不能不用转存到硬盘直接用File类读取,试过将其强制转换成File类型结果报错. 目前做法 ...
- StreamReader类
StreamReader类用于从文件中读取数据,该类是一个通用类,可用于任何流,构造方法和StreamWrite类格式一样的. 创建方式有两种: 1.先创建Filestream类在创建StreamRe ...
最新文章
- 三篇ISME讨论‘1%的微生物可培养’
- Synchronized和Lock有什么区别
- python supervisor_python之supervisor进程管理工具
- 跟着感觉走,不要冲动入手,到真正低点在入手
- vc6 前进后退 番茄_比较圣女果与西红柿中的Vc含量解读
- MBSA有关安全漏洞的检查说明一
- Xamarin Android 应用程序内图标上数字提示
- Ubuntu系统下面软件安装更新命令
- Excel-图表与文本框/图片的组合
- 《编码:隐匿在计算机软硬件背后的语言》读书笔记整理总结
- 五日均线指标编程案例讲解
- html5新年网页做给父母的,2020给父母的新年祝福语
- 牧羊人和金斧子|不要和产品聊天!
- 高颜值蓝牙耳机有哪些?音质好颜值高的蓝牙耳机推荐
- 【转载】第三方支付业务如何测试
- 一个光棍的呐喊!-太经典了
- WebP图片格式处理和兼容使用
- Kali Linux 2020.1安装教程
- 大华摄像头实现web端实时播放以及录像回放
- 计算机与外设维修初级,计算机的外设维修实例论文.docx
热门文章
- 怎么p出模糊的照片_36. 盲去卷积 - 更加实用的图像去模糊方法
- springboot2整合mysql5_SpringBoot2.X (二十五):SpringBoot整合 Mybatis + MySQL CURD 示例
- java excil表格开发_JAVA导出Excel电子表格的方法
- ansys变形太夸张_航母上的一颗铆钉能换一辆奥迪?太奢侈了
- Hibernate使用原生SQL适应复杂数据查询
- 剑指offer:39-42记录
- redis——发布和订阅
- Elasticsearchan相关插件和工具安装
- centos安装nginx,配置负载均衡
- 再议指针和引用的一些事情吧