1. 网上看到的觉得值得学习所以保存下来供以后参考
  2. c文件操作
  3. C使用StreamWriter类写入文件文件
  4. 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的使用相关推荐

  1. C#基础知识及题目练习 Day8 文件操作 FileStream StreamWriter 序列化和反序列化

    一.Path 1.GetFileName();   //获取文件名 2.GetFileNameWithoutExtention();   //获取不带扩展名的文件名称 3.GetExtension() ...

  2. C#语言-07.文件操作

    a. 文件操作:适用于相对简单的数据保存i. 读写文件的步骤:1. 创建文件流2. 创建读写器3. 读写文件4. 关闭读写器5. 关闭文件流ii. FileStream(文件流),它主要用于读写文件中 ...

  3. C#文件操作(IO流 摘抄)

    11 文件操作概述 11.1 驱动器 在Windows操作系统中,存储介质统称为驱动器,硬盘由于可以划分为多个区域,每一个区域称为一个驱动器..NET Framework提供DriveInfo类和 D ...

  4. C# 文件操作详解(一)---------File类

    C#对文件的操作相当方便,主要涉及到四个类:File.FileInfo.Directory.DirectoryInfo,前两个提供了针对文件的操作,后两个提供了针对目录的操作,类图关系如下: 图1:类 ...

  5. C#常用的文件操作 (转)

    C#常用的文件操作 C#常用的文件操作(网上收集) C#写入/读出文本文件,包括创建文件,追加文件,修改文件,等等操作,个人觉得很适用,所以收藏了,和大家分享 public void Page_Loa ...

  6. Unity3D学习笔记(二十五):文件操作

    文件是什么? 存储在硬盘上的最后的节点. 文件夹是什么? 文件的上级单位称为文件夹. 文件夹的基本结构? 文件夹是层级化结构的,对于同级的文件夹不可以重名,父文件夹和子文件夹可以同名> IO:I ...

  7. ASP.NET 文件操作类

    1.读取文件 2.写入文件 using System; using System.Collections.Generic; using System.IO; using System.Linq; us ...

  8. C#理论 —— 文件操作、委托和事件

    文章目录 1. 文件操作 1.1 获取计算机驱动器信息Driveinfo 1.2 文件夹操作Directory.Directoryinfo 1.3 文件操作File.FileInfo 1.4 文件路径 ...

  9. C#文件操作 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名

    C#追加文件 StreamWriter sw = File.AppendText(Server.MapPath(".")+"\\myText.txt"); sw ...

最新文章

  1. 美科学基金会欲向公众征集想法
  2. ajax为什么会全局刷新,为什么发送ajax请求页面也会刷新呢?
  3. php打开并填充表单,php – 创建一个’机器人’来填充带有一些页面的表单
  4. foundation of the academics
  5. linux native分区,怎么将硬盘格式分区为Linux Native格式的
  6. 《王牌竞速》与HUAWEI Mate40 系列打造全新游戏体验
  7. imwrite函数 matlab_用matlab做一个脉动磁势分解的动画
  8. modbus功能码04实例_MODBUS功能码简介
  9. 印度成不了下一个世界工厂,越南才可能
  10. 常用汉字3500——文字识别数据准备
  11. 手写签名制作电子签名详细步骤
  12. 最新GEM技术导航系统开心版源码+免授权
  13. 百宝云Post与Get事件教程
  14. POI word 模板 字段替换
  15. 管理者一定要会讲故事
  16. pygame实现找方块(色彩敏感度测试)游戏
  17. java pdfbox2 中文乱码_使用PdfBox实现pdf转图片,解决中文方块乱码等问题
  18. 17期-什么是MySQL数据库?看这一篇干货文章就够了!
  19. 江苏:创新管理方法 电动自行车交通事故同比下降40%
  20. 计算机自动连续进行数据处理是因为什么,现代计算机之所以能自动连续进行数据处理是因为什么...

热门文章

  1. linux+路由器信号检测工具,Linux下常用网络故障调试工具介绍之Ping命令使用
  2. sarscape 将dem文件转化成stl_STL源码剖析 阅读笔记(一)介绍
  3. opencv图像拼接_使用OpenCV进行图像全景拼接
  4. php点击价格_按价格从高到低排序和从低到高排序_可点击切换,WooCommerce 教程:[解决] 排序,航运成本 – 从低到高...
  5. java输入流读取几行文本_Java基础笔记Day_16
  6. linux单次任务调度,go任务调度2(linux的cron调用)
  7. python秒转换成小时分钟秒_新闻联播66分钟,康辉口播22分38秒,零失误
  8. php怎么解决雪崩或穿透,Redis之缓存击穿、穿透、雪崩、预热,以及如何解决?...
  9. php运行资源库,如何在sublime上运行php
  10. php键值交换,php键值互换时走的一个弯路