c#filestream与streamwriter用法
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用法相关推荐
- C# FileStream和StreamWriter用法
FielStream类操作的是字节和字节数组,而stream类操作的是字符数据.字符数据易于使用,但是有些操作,比如随机文件访问(访问文件中间某点的数据),就必须由FileStream对象执行. ...
- FileStream 和StreamWriter 一起用时
StreamWriter Flush 即可. FileStream Flush 无用. 转载于:https://www.cnblogs.com/runliuv/p/3173454.html
- FileStream与StreamWriter区别
FileStream对象表示在磁盘或网络路径上指向文件的流. 这个类提供了在文件中读写字节的方法,但经常使用StreamReader或 StreamWriter执行这些功能.这是因为 FileStre ...
- C#中FileStream和StreamWriter/StreamReader的区别
区别 FileStream 对象表示在磁盘或网络路径上指向文件的流.这个类提供了在文件中读写字节的方法. 但经常使用 StreamReader 或 StreamWriter 执行这些功能. 这是因为 ...
- 读写文本文件-StreamReader和StreamWriter
1.读写文本文件 我们对文本文件的读写一般使用StreamReader和StreamWriter,因为不同的文本有不同的编码格式,这个StreamReader会帮我们自动处理,所以我们不需要关心文本文 ...
- C#文件操作(IO流 摘抄)
11 文件操作概述 11.1 驱动器 在Windows操作系统中,存储介质统称为驱动器,硬盘由于可以划分为多个区域,每一个区域称为一个驱动器..NET Framework提供DriveInfo类和 D ...
- 简述C#中IO的应用 RabbitMQ安装笔记 一次线上问题引发的对于C#中相等判断的思考 ef和mysql使用(一) ASP.NET/MVC/Core的HTTP请求流程...
简述C#中IO的应用 在.NET Framework 中. System.IO 命名空间主要包含基于文件(和基于内存)的输入输出(I/O)服务的相关基础类库.和其他命名空间一样. System.IO ...
- C#(Csharp)笔记二十八——C# 文件的输入与输出
一丶C# 文件的输入与输出 一个 文件 是一个存储在磁盘中带有指定名称和目录路径的数据集合.当打开文件进行读写时,它变成一个 流. 从根本上说,流是通过通信路径传递的字节序列.有两个主要的流:输入流 ...
- C#代码审计实战+前置知识
C#了解 菜鸟教程:https://www.runoob.com/csharp/csharp-intro.html C# 基于 C 和 C++ 编程语言,是一个简单的.现代的.通用的.面向对象的编程语 ...
最新文章
- 异步socket的线程分配(C#)
- Qt5.3.2openglVS2010_QSqlField_字段类型
- 解题:2017清华集训 无限之环
- python 查看当前目录_Python学习第156课--ls的运用、环境变量以及PATH
- 电量计在手持设备中的实现
- (转)Struts2的拦截器
- 如何转置_数据转置用选择性粘贴,图片呢?
- ubuntu系统配置双网卡方法
- docker开启otter服务mysql单双向同步数据
- (原创)十大危险cmd命令代码总结
- 中英离线翻译mac_PROMT Offline Translator翻译软件-PROMT Offline Translator Mac版下载 V2.1-PC6苹果网...
- Python自动采集微信联系人
- java 双三次线性插值_双线性及双三次插值
- java迷宫注释_写下走迷宫游戏的注释
- 深入理解正向代理和反向代理
- 【LaTeX试卷】天津大学仁爱学院高等数学试卷 LaTeX模板
- 题解-[Usaco2005 Mar]Out of Hay 干草危机
- Cerebral Cortex:基因和环境对大脑功能连接的影响
- 下载文件到本地解压压缩包出现文件损坏,报错问题已解决
- 上网速度(网速)的计算
热门文章
- 如何通过Charles+BurpSuite的配合在PC端抓到手机包
- 12.3明德杨UART_TX调试经验
- android TeleComm Telephony Dialer之间的说明
- Start Developing iOS Apps Today
- 邮箱 名字 地址url正则表达式
- vscode报错之 对修饰器的实验支持功能在将来的版本中可能更改。在 “tsconfig“ 或 “jsconfig“ 中设置 “experimentalDecorators“ 选项以删除此警告。
- 联想平板android版本升级,联想乐Pad A1平板安卓4.0升级操作详细教程
- nssl 1452 2018CodeM总决赛 排行榜
- 使用MySQL,请用好 JSON 这张牌!
- FCN(Fully Convolutional Networks for Semantic Segmentation)全文翻译