FileStream读写文件【StreamWriter 和 StreamReader】
FileStream对象表示在磁盘或网络路径上指向文件的流。这个类提供了在文件中读写字节的方法,但经常使用StreamReader或StreamWriter执行这些功能。这是因为FileStream类操作的是字节和字节数组,而Stream类操作的是字符数据。字符数据易于使用,但是有些操作,比如随机文件访问(访问文件中间某点的数据),就必须由FileStream对象执行.
其中创建FileStream对象最简单的构造函数如下:
FileStream file = new FileStream(fileName,FileMode.Member);2
FileStream file = new FileStream(fileName, FileMode.Member, FileAccess.Member);|
成 员 |
说 明 |
|
Read |
打开文件,用于只读 |
|
Write |
打开文件,用于只写 |
|
ReadWrite |
打开文件,用于读写 |
对文件进行不是FileAccess枚举成员指定的操作会导致抛出异常。此属性的作用是,基于用户的身份验证级别改变用户对文件的访问权限。
在FileStream构造函数不使用FileAccess枚举参数的版本中,使用默认值FileAccess. ReadWrite。
FileMode枚举成员,使用每个值会发生什么,取决于指定的文件名是否表示已有的文件。
|
成 员 |
文 件 存 在 |
文件不存在 |
|
Append |
打开文件,流指向文件的末尾,只能与枚举FileAccess.Write联合使用 |
创建一个新文件。只能与枚举FileAccess.Write联合使用 |
|
Create |
删除该文件,然后创建新文件 |
创建新文件 |
|
CreateNew |
抛出异常 |
创建新文件 |
|
Open |
打开现有的文件,流指向文件的开头 |
抛出异常 |
|
OpenOrCreate |
打开文件,流指向文件的开头 |
创建新文件 |
|
Truncate |
打开现有文件,清除其内容。流指向文件的开头,保留文件的初始创建日期 |
抛出异常 |
FileStream类操作的是字节和字节数组,而Stream类操作的是字符数据
StreamWriter允许将字符和字符串写入文件,它处理底层的转换,向FileStream对象写入数据。StreamReader也类似。
实例:
using System;2
using System.Data;3
using System.IO;4
using System.Text;5

6
/// <summary>7
/// Summary description for FileReadAndWrite8
/// </summary>9
public class FileReadAndWrite10
{11
public FileReadAndWrite()12
{13
//14
// TODO: Add constructor logic here15
//16
}17
/// <summary>18
/// 用FileStream写文件19
/// </summary>20
/// <param name="str"></param>21
/// <returns></returns>22
public void FileStreamWriteFile(string str)23
{24
byte[] byData;25
char[] charData;26
try27
{28
FileStream nFile = new FileStream("love.txt", FileMode.Create);29
//获得字符数组30
charData = str.ToCharArray();31
//初始化字节数组32
byData = new byte[charData.Length];33
//将字符数组转换为正确的字节格式34
Encoder enc = Encoding.UTF8.GetEncoder();35
enc.GetBytes(charData, 0, charData.Length,byData,0,true);36
nFile.Seek(0, SeekOrigin.Begin);37
nFile.Write(byData, 0, byData.Length);38
}39
catch (Exception ex)40
{41
throw ex;42
}43
}44
/// <summary>45
/// FileStream读取文件46
/// </summary>47
/// <param name="filePath"></param>48
/// <returns></returns>49
public string FileStreamReadFile(string filePath)50
{51
byte[] data = new byte[100];52
char[] charData = new char[100];53
try54
{55
FileStream file = new FileStream(filePath, FileMode.Open);56
//文件指针指向0位置57
file.Seek(0, SeekOrigin.Begin);58
//读入两百个字节59
file.Read(data, 0, 200);60
//提取字节数组61
Decoder dec = Encoding.UTF8.GetDecoder();62
dec.GetChars(data, 0, data.Length, charData, 0);63
}64
catch (Exception ex)65
{66
throw ex;67
}68
return Convert.ToString(charData);69
}70
/// <summary>71
/// StreamWriter写文件72
/// </summary>73
public void StreamWriterWriteFile()74
{75
try76
{77
FileStream nFile = new FileStream("love.txt", FileMode.CreateNew);78
StreamWriter writer = new StreamWriter(nFile);79

80
writer.WriteLine("I love You!");81
writer.WriteLine("Do you love me!");82
writer.Close();83
}84
catch85
{ }86
}87
/// <summary>88
/// StreamReader读取文件89
/// </summary>90
/// <returns></returns>91
public string StreamReaderReadFile()92
{93
string str="";94
try95
{96
FileStream file = new FileStream("love.txt", FileMode.Open);97
StreamReader sr = new StreamReader(file);98
while (sr.ReadLine()!=null)99
{100
str += sr.ReadLine();101
}102
//或者str = sr.ReadToEnd();103
sr.Close();104
}105
catch106
{ }107
return str;108
}109
}110

FileStream读写文件【StreamWriter 和 StreamReader】的更多相关文章
- [转载]FileStream读写文件
FileStream读写文件 FileStream类:操作字节的,可以操作任何的文件 StreamReader类和StreamWriter类:操作字符的,只能操作文本文件. 1.FileStream类 ...
- FileStream读写文件流
用FileStream 读取文件流并显示给文件内容 string p = @"C:\Users\Administrator\Desktop\1.txt"; FileStream f ...
- FileStream读写文件
读文件示例 try { // 打开文件 FileStream fs = new FileStream("D:\\not.txt", FileMode.Open, FileAcces ...
- C#读写文件总结
1.使用FileStream读写文件 文件头: using System; using System.Collections.Generic; using System.Text; using ...
- C# 之 读写文件
1.使用 FileStream 读写文件 添加命名空间引用: using System; using System.Collections.Generic; using System.Text; us ...
- C#文件与流(FileStream、StreamWriter 、StreamReader 、File、FileInfo、Directory、directoryInfo、Path、Encoding)
(FileStream.StreamWriter .StreamReader .File.FileInfo.Directory.DirectoryInfo.Path.Encoding) C#文 ...
- (整理)streamWriter、streamReader与FileStream
今天偶然使用VS代码分析,发现CA2000警告,然后其中一条为streamWriter.streamReader与FileStream相关内容,特查询并记录一下. 引文地址:http://bbs.cs ...
- C#常用IO流与读写文件
.文件系统 ()文件系统类的介绍 文件操作类大都在System.IO命名空间里.FileSystemInfo类是任何文件系统类的基类:FileInfo与File表示文件系统中的文件:Directory ...
- C#常用IO流与读写文件 (转)
源自https://www.cnblogs.com/liyangLife/p/4797583.html 谢谢 1.文件系统 (1)文件系统类的介绍 文件操作类大都在System.IO命名空间里.Fil ...
随机推荐
- php中trait(性状)与generator(生成器)
PHP中trait(性状)与generator(生成器) 一.trait (性状) 最近在看Josh Lockhat的<Modern PHP>,这本书很薄.但是其中给出了一个很重要的学习方 ...
- 《JAVA与模式》之观察者模式
转自:http://www.cnblogs.com/java-my-life/archive/2012/05/16/2502279.html 在阎宏博士的<JAVA与模式>一书中开头是这样 ...
- sift特征源码
先贴上我对Opencv3.1中sift源码的注释吧,虽然还有很多没看懂.先从detectAndCompute看起 void SIFT_Impl::detectAndCompute(InputArray ...
- fedora自带OpenJDK,所以如果安装官方的JDK的话要先删除OpenJDK
1:rpm -qa|grep jdk 查看当前的jdk情况. 2:yum -y remove java java-1.7.0-openjdk* 卸载openjdk,这个过程中因为依赖原因可能会卸载一些 ...
- PHPCMS调用点击量的方法
具体方法: 首先:需要在show.html 模板中首先加载jquery.min.js 这个js 其次:需要在要显示点击次数的位置写入: <span>点击:<span id=" ...
- 第一个spring、springmvc、mybatis、freemarker项目小知识(一)
1.持久层开发(Mybatis) 1.1 添加,非空字段必须给值,不是非空加判断,有值添加无值不添 1.2 删除,注意外键关系的级联删除.(事务传播行为) 1.3 更新,每个字段单独 ...
- api接口类型
类型一:js+xml 类型二:纯php模式 参考: <?php $ip = '117.25.13.123'; $datatype = 'text'; $url = 'http://api.ip1 ...
- Eclipse Android环境搭建
1.先安装ADT,记得断开网络2.然后关闭Eclipse安装SDK,例如安装在C:\Users\Administrator\AppData\Local\Android\android-sdk3.重启E ...
- 数字与字母混合生成流水号规则--ASP实现
最近遇到一个比较奇葩的事情,自己所负责的一个系统出现一个流水号用完的问题:正常情况下,流水号用完应该增加多位来解决这个问题.鉴于各种因素,最后决定:位数不变,增加字母进去,当数字用完后,会出现字母,而 ...
- ASP.NET 判断客户端是否为手机的函数
http://www.cnblogs.com/cxd4321/p/3795911.html