惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
G
Google Developers Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
腾讯CDC
有赞技术团队
有赞技术团队
Vercel News
Vercel News
MongoDB | Blog
MongoDB | Blog
M
MIT News - Artificial intelligence
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
B
Blog RSS Feed
I
InfoQ
Blog — PlanetScale
Blog — PlanetScale
博客园_首页
The Cloudflare Blog
B
Blog
C
Check Point Blog
Stack Overflow Blog
Stack Overflow Blog
IT之家
IT之家
U
Unit 42
D
Docker
月光博客
月光博客
aimingoo的专栏
aimingoo的专栏
博客园 - Franky
A
About on SuperTechFans

博客园 - teacherzj

EF---延迟加载技术 Entity Framework 1 委托 xml 可扩展的标记语言 单例模式 集合,对象初始化器 序列化与反序列化 进程与线程 winform基础 MD5加密 接口 重写ToString()方法 密封类 部分类 序列化和反序列化 值类型和引用类型 简单工厂模式 C#中的访问修饰符 多态
FileStream、StreamReader和StreamWriter
teacherzj · 2014-11-30 · via 博客园 - teacherzj

FileStream、StreamReader和StreamWriter
FileStream 操作字节的。
StreamReader和StreamWriter操作字符的。

//使用FileStream来读取数据
FileStream fsRead=new FileStream(@"c:\new.txt",FileMode.OpenOrCreate,FileAccess.Read);
byte[] buffer=new byte[1024*1024*5];
//3.8M 5M r返回本次实际读取到的有效节数
int r=fsRead.Read(buffer,0,buffer.Length);
//将字节数组每一个元素按照指定的编辑格式解码成字符串
string s=Encodeing.UTF8.GetString(buffer,0,r);
//关闭流
fsRead.Close();
//释放流所点用的资源
fsRead.Dispose();
Console.WriteLine(s);
Console.Readkey();

//使用FileStream来写入数据
*将创建文件流对象的过程写在Using当中,会自动地帮助我们释放流所占用的资源。
using(FileStream fsWrite=new FileStream(@"c:\new.txt",FileMode.OpenOrCreate,FileAccess.Write))
{
string str="看我有没有把你覆盖。";
byte[] buffer=Encoding.UTF8.GetBytes(str);
fsWrite.Write(buffer,0,buffer.Length);
}
Console.WriteLine("写入OK");
Console.Readkey();

//使用文件流实现多媒体文件的复制
//思路:就先将要复制的多媒体文件读出来,然后再写入到你指定的位置。
string source=@"c:\1.wmv";
string target=@"c:\2.wmv";
CotyFile(source,target);
public static void CopyFile(string source, string target)
{
//1我们一个负责读取的流
using(FileStream fsRead=new FileStream(source,FileMode.Open,FileAccess.Read))
{
//2创建一个负责写入的流
using(FileStream fsWirte=new FileStream(target,FileMode.OpenOrCreate,FileAccess.Write))
{
byte[] buffer=new byte[1024*1024*5];
while(true)
{
//返回本次读取实际读到的字节数
int r=fsRead(buffer,0,buffer.Length);
//如果返回一个0,也就是说明没有读到数据,已经读完了。
if(r==0){break;}
fsWrite(buffer,0,r);
}

}
}
}

//使用StreamReader来取一个文件文件
using(SteamReader sr=new StreamReader(@"c:\new.txt",Encoding.Default))
{
while(!sr.EndOfStream)
{
Console.WriteLine(sr.ReadLine());
}
}

//使用StreamWrite来写入一个文件文件
using(StreamWrite sw=new StreamWrite(@"c:\new.txt",true))//true表示是否追加
{
sw.Write("今天天气好晴朗!");
}