FileStream常用的函数

filestream fs=new filestream(filename,filemode.member,fileaccess,member)

filemodede 的成员有:

成員

文件存在時

文件不存在時

Append

打開文件,流指向文件的末尾,只能與枚舉FileAcess.Write聯合使用

創建一個新文件。只能與枚舉FileAcess.Write聯合使用

Create

刪除該文件,然後創建新文件

創建新文件

CreateNew

拋出異常

創建新文件

Open

打開現有文件,流指向文件開頭

拋出異常

OpenOrCreate

打開文件,流指向文件開頭

創建新文件

Truhncate

打開現有文件,清除其內容。流指向文件開頭,保留文件的初始創建日期。

拋出異常

除了使用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,则打开文件保留原来数据,如果找不到文件,则创建新文件。

另外StreamWriter还有一个参数,即第三个参数,设定写文件时的编码方式

例如:streamwriter sw = new StreamWriter(rptPath,false,HandlingSettings.Default.CurrentEncoding);

或者:Encoding.ASCII;  Encoding.Unicode; Encoding.UTF7;等

与创建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#filestream与streamwriter用法相关推荐

  1. C# FileStream和StreamWriter用法

    FielStream类操作的是字节和字节数组,而stream类操作的是字符数据.字符数据易于使用,但是有些操作,比如随机文件访问(访问文件中间某点的数据),就必须由FileStream对象执行.    ...

  2. FileStream 和StreamWriter 一起用时

    StreamWriter  Flush 即可. FileStream Flush 无用. 转载于:https://www.cnblogs.com/runliuv/p/3173454.html

  3. FileStream与StreamWriter区别

    FileStream对象表示在磁盘或网络路径上指向文件的流. 这个类提供了在文件中读写字节的方法,但经常使用StreamReader或 StreamWriter执行这些功能.这是因为 FileStre ...

  4. C#中FileStream和StreamWriter/StreamReader的区别

    区别 FileStream 对象表示在磁盘或网络路径上指向文件的流.这个类提供了在文件中读写字节的方法. 但经常使用 StreamReader 或 StreamWriter 执行这些功能. 这是因为 ...

  5. 读写文本文件-StreamReader和StreamWriter

    1.读写文本文件 我们对文本文件的读写一般使用StreamReader和StreamWriter,因为不同的文本有不同的编码格式,这个StreamReader会帮我们自动处理,所以我们不需要关心文本文 ...

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

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

  7. 简述C#中IO的应用 RabbitMQ安装笔记 一次线上问题引发的对于C#中相等判断的思考 ef和mysql使用(一) ASP.NET/MVC/Core的HTTP请求流程...

    简述C#中IO的应用 在.NET Framework 中. System.IO 命名空间主要包含基于文件(和基于内存)的输入输出(I/O)服务的相关基础类库.和其他命名空间一样. System.IO ...

  8. C#(Csharp)笔记二十八——C# 文件的输入与输出

    一丶C# 文件的输入与输出 一个 文件 是一个存储在磁盘中带有指定名称和目录路径的数据集合.当打开文件进行读写时,它变成一个 流. 从根本上说,流是通过通信路径传递的字节序列.有两个主要的流:输入流 ...

  9. C#代码审计实战+前置知识

    C#了解 菜鸟教程:https://www.runoob.com/csharp/csharp-intro.html C# 基于 C 和 C++ 编程语言,是一个简单的.现代的.通用的.面向对象的编程语 ...

最新文章

  1. 异步socket的线程分配(C#)
  2. Qt5.3.2openglVS2010_QSqlField_字段类型
  3. 解题:2017清华集训 无限之环
  4. python 查看当前目录_Python学习第156课--ls的运用、环境变量以及PATH
  5. 电量计在手持设备中的实现
  6. (转)Struts2的拦截器
  7. 如何转置_数据转置用选择性粘贴,图片呢?
  8. ubuntu系统配置双网卡方法
  9. docker开启otter服务mysql单双向同步数据
  10. (原创)十大危险cmd命令代码总结
  11. 中英离线翻译mac_PROMT Offline Translator翻译软件-PROMT Offline Translator Mac版下载 V2.1-PC6苹果网...
  12. Python自动采集微信联系人
  13. java 双三次线性插值_双线性及双三次插值
  14. java迷宫注释_写下走迷宫游戏的注释
  15. 深入理解正向代理和反向代理
  16. 【LaTeX试卷】天津大学仁爱学院高等数学试卷 LaTeX模板
  17. 题解-[Usaco2005 Mar]Out of Hay 干草危机
  18. Cerebral Cortex:基因和环境对大脑功能连接的影响
  19. 下载文件到本地解压压缩包出现文件损坏,报错问题已解决
  20. 上网速度(网速)的计算

热门文章

  1. 如何通过Charles+BurpSuite的配合在PC端抓到手机包
  2. 12.3明德杨UART_TX调试经验
  3. android TeleComm Telephony Dialer之间的说明
  4. Start Developing iOS Apps Today
  5. 邮箱 名字 地址url正则表达式
  6. vscode报错之 对修饰器的实验支持功能在将来的版本中可能更改。在 “tsconfig“ 或 “jsconfig“ 中设置 “experimentalDecorators“ 选项以删除此警告。
  7. 联想平板android版本升级,联想乐Pad A1平板安卓4.0升级操作详细教程
  8. nssl 1452 2018CodeM总决赛 排行榜
  9. 使用MySQL,请用好 JSON 这张牌!
  10. FCN(Fully Convolutional Networks for Semantic Segmentation)全文翻译