c#文件操作Streamwriter, streamreader的使用
- 网上看到的觉得值得学习所以保存下来供以后参考
- c文件操作
- C使用StreamWriter类写入文件文件
- C使用StreamReader类读取文件文件
网上看到的,觉得值得学习,所以保存下来供以后参考
c#文件操作
C#使用StreamWriter类写入文件文件
除了使用FileStream类读写文本文件,.net还提供了StreamWriter类和StreamReader类专门处理文本文件。这两个类从底层封装了文件流,读写时不用重新编码,提供了更文件的读写方式。
StreamWriter类允许将字符和字符串写入到文件中,不必转换为字节,它处理底层的转换,向FileStream对象写入数据。
一、创建StreamWrite对象
如果已经有了FileStream对象,则可以使用此对象来创建StreamWriter对象:
FileStream fs = new FileStream("test.txt",FileMode.CreateNew);
StreamWriter sw = new StreamWriter(fs);
也可以直接从文件中创建StreamWriter对象:
StreamWriter sw = new StreamWriter("test.txt",true);
此构造函数中有两个参数,一个是文件名,另一个是布尔值,这个布尔值规定创建对象的方式如下:
如果此值为false,则创建一个新文件,如果存在原文件,则覆盖。
如果此值为true,则打开文件保留原来数据,如果找不到文件,则创建新文件。
与 创建FileStream对象不同,创建StreamWriter对象不会提供一组类似的选项:除了使用Boolean值添加到文件的末尾或创建新文件之 外,根本没有像FileStream类那样指定FileMode属性的选项。而且,没有设置FileAccess属性的选项,因此总是有对文件的读/写权 限。为了使用高级参数,必须先在FileStream构造函数中指定这些参数,然后在FileStream对象中创建StreamWriter。
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:\123\欢迎.txt", FileMode.OpenOrCreate);
StreamWriter sw = new StreamWriter(aFile);
sw.WriteLine("为今后我们之间的进一步合作,");
sw.WriteLine("为我们之间日益增进的友谊,");
sw.Write("为朋友们的健康幸福,");
sw.Write("干杯!朋友!");
sw.Close();
}
catch (IOException ex)
{
Console.WriteLine(ex.Message);
Console.ReadLine();
return ;
}
}
}
编译并运行该项目。如果没有发现错误,则项目会很快运行,并关闭。因为我们在控制台上没有显示任何内容,所以在控制台中无法看到程序的执行情况。
这个简单的应用程序演示了StreamWriter类的两个最重要的方法:Write()和WriteLine()。这两个方法具有许多重载的版本,可以完成更高级的文件输出,但是本示例只使用基本的字符串输出。
WriteLine()方法会写入传递给它的字符串,其后跟有换行符。
Write()方法只是把传送给它的字符串写入文件,但不追加换行符,因此可以使用多个Write()语句写入完整的句子或段落。
注意:如果路径不存在,会抛出异常,当然我们这个程序捕获了异常。
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的方法访问文件。
c#文件操作Streamwriter, streamreader的使用相关推荐
- C#基础知识及题目练习 Day8 文件操作 FileStream StreamWriter 序列化和反序列化
一.Path 1.GetFileName(); //获取文件名 2.GetFileNameWithoutExtention(); //获取不带扩展名的文件名称 3.GetExtension() ...
- C#语言-07.文件操作
a. 文件操作:适用于相对简单的数据保存i. 读写文件的步骤:1. 创建文件流2. 创建读写器3. 读写文件4. 关闭读写器5. 关闭文件流ii. FileStream(文件流),它主要用于读写文件中 ...
- C#文件操作(IO流 摘抄)
11 文件操作概述 11.1 驱动器 在Windows操作系统中,存储介质统称为驱动器,硬盘由于可以划分为多个区域,每一个区域称为一个驱动器..NET Framework提供DriveInfo类和 D ...
- C# 文件操作详解(一)---------File类
C#对文件的操作相当方便,主要涉及到四个类:File.FileInfo.Directory.DirectoryInfo,前两个提供了针对文件的操作,后两个提供了针对目录的操作,类图关系如下: 图1:类 ...
- C#常用的文件操作 (转)
C#常用的文件操作 C#常用的文件操作(网上收集) C#写入/读出文本文件,包括创建文件,追加文件,修改文件,等等操作,个人觉得很适用,所以收藏了,和大家分享 public void Page_Loa ...
- Unity3D学习笔记(二十五):文件操作
文件是什么? 存储在硬盘上的最后的节点. 文件夹是什么? 文件的上级单位称为文件夹. 文件夹的基本结构? 文件夹是层级化结构的,对于同级的文件夹不可以重名,父文件夹和子文件夹可以同名> IO:I ...
- ASP.NET 文件操作类
1.读取文件 2.写入文件 using System; using System.Collections.Generic; using System.IO; using System.Linq; us ...
- C#理论 —— 文件操作、委托和事件
文章目录 1. 文件操作 1.1 获取计算机驱动器信息Driveinfo 1.2 文件夹操作Directory.Directoryinfo 1.3 文件操作File.FileInfo 1.4 文件路径 ...
- C#文件操作 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名
C#追加文件 StreamWriter sw = File.AppendText(Server.MapPath(".")+"\\myText.txt"); sw ...
最新文章
- 美科学基金会欲向公众征集想法
- ajax为什么会全局刷新,为什么发送ajax请求页面也会刷新呢?
- php打开并填充表单,php – 创建一个’机器人’来填充带有一些页面的表单
- foundation of the academics
- linux native分区,怎么将硬盘格式分区为Linux Native格式的
- 《王牌竞速》与HUAWEI Mate40 系列打造全新游戏体验
- imwrite函数 matlab_用matlab做一个脉动磁势分解的动画
- modbus功能码04实例_MODBUS功能码简介
- 印度成不了下一个世界工厂,越南才可能
- 常用汉字3500——文字识别数据准备
- 手写签名制作电子签名详细步骤
- 最新GEM技术导航系统开心版源码+免授权
- 百宝云Post与Get事件教程
- POI word 模板 字段替换
- 管理者一定要会讲故事
- pygame实现找方块(色彩敏感度测试)游戏
- java pdfbox2 中文乱码_使用PdfBox实现pdf转图片,解决中文方块乱码等问题
- 17期-什么是MySQL数据库?看这一篇干货文章就够了!
- 江苏:创新管理方法 电动自行车交通事故同比下降40%
- 计算机自动连续进行数据处理是因为什么,现代计算机之所以能自动连续进行数据处理是因为什么...
热门文章
- linux+路由器信号检测工具,Linux下常用网络故障调试工具介绍之Ping命令使用
- sarscape 将dem文件转化成stl_STL源码剖析 阅读笔记(一)介绍
- opencv图像拼接_使用OpenCV进行图像全景拼接
- php点击价格_按价格从高到低排序和从低到高排序_可点击切换,WooCommerce 教程:[解决] 排序,航运成本 – 从低到高...
- java输入流读取几行文本_Java基础笔记Day_16
- linux单次任务调度,go任务调度2(linux的cron调用)
- python秒转换成小时分钟秒_新闻联播66分钟,康辉口播22分38秒,零失误
- php怎么解决雪崩或穿透,Redis之缓存击穿、穿透、雪崩、预热,以及如何解决?...
- php运行资源库,如何在sublime上运行php
- php键值交换,php键值互换时走的一个弯路