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 ...
随机推荐
- 加密算法中BASE64、MD5、SHA、HMAC等之间的区别
http://blog.csdn.net/lplj717/article/details/51828692 根据项目需要了解了一下几种加密算法(参考其他博客),内容简要介绍BASE64.MD5.SHA ...
- Nike Zoom Winflo 2 Kvinder Sko Når jeg set elementet
De fleste af os elskede denne Nike Pegasus 34 foruden var ved at blive begejstret for at få dine ben ...
- kailli linux download
https://www.offensive-security.com/kali-linux-arm-images/ Courses Certifications Online Labs Penetra ...
- 高性能异步图片加载器的JS库:lazysizes
<script src="lazysizes.min.js" async=""></script> 使用示例 <!-- non-r ...
- JVM内存分配策略
在 JVM内存垃圾回收方法 中,我们已经详细讨论了内存回收,但是,我们程序中生成的对象是如何进行分配的呢?以下所述针对的是HotSpot虚拟机. 1.Java堆结构 以HotSpot为例,如下图: H ...
- 列表中checked全选按钮的实现
用过音乐播放器的人都知道有个全选按钮,如果使用Jquery实现,有个直接选中checked标签的方式 <!DOCTYPE HTML> <html> <head> & ...
- Java国际化(i18n)
Java国际化(i18n) 最近在做一个网站国际化的功能.用Java做开发,使用spring+velocity. Java提供了对i18n的支持,spring对其做了集成,可以很方便的配置.主要思想就 ...
- JavaScript 智能社 完美运动框架
简约版: function getStyle(obj, name) { if(obj.currentStyle) { return obj.currentStyle[name]; } else { r ...
- 【Android Studio】android Internal HTTP server disabled 解决
报错:Cannot start internal HTTP server. Git integration, JavaScript debugger and LiveEdit may operate ...
- 导出Excel通用工具类
导出Excel的两种方法: 一,POI 导入poi包 poi-3.11-beta3-20141111.jar /** * */ package com.car.ots.mpckp.utils; imp ...