C#中的文件流和写入器?

请问在C#中FileStream(文件流)和StreamWriter(写入器)分别怎么理解?并举例说明他的作用?... 请问在C#中FileStream(文件流)和StreamWriter(写入器)分别怎么理解?并举例说明他的作用? 展开
 我来答 举报
匿名用户
2013-08-30
展开全部
FielStream类操作的是字节和节节数组,而stream类操作的是字符数据。字符数据易於使用,但是有些操作,比如随机文件访问(访问文件中间某点的数据),就必须由FileStream对象执行。
FielStream类维护内部文件指针,该指针指向文件中进行下一次读写操作的位置。
FileStream只能处理原始字节(raw byte),处理原去吧字节的功能使用FileStream类可以用於处理任何数据文件。
通过读取字节数据,FileStream对像可以用於读取图像和声音。代价是FileStream类不能将数据直接读入字符串
此指针可以修改用Seek方法,它有两个参数:
第一个参数:规定文件指针以字节为参数的移动距离
第二个参数:规定开始计算的起始位置

byte[] byDataValue = new byte[200];
char[] charDataValue = new char[200];

/// <summary>
/// FilesStream读取用法
/// </summary>
private void FilesStreamReadFile()
{
try
{
FileStream fsFile = new FileStream(@"d:\log.cs", FileMode.Open);
//文件指针移到文件的135个字节
fsFile.Seek(135, SeekOrigin.Begin);
//将接下来的字节读到Array中
fsFile.Read(byDataValue, 0, 200);
}
catch (Exception e)
{
throw e;
}
//将字节转换成字符
Decoder dc = Encoding.UTF8.GetDecoder();
//字节数组转换成字符数组,便於显示
dc.GetChars(byDataValue, 0, byDataValue.Length, charDataValue, 0);

}

/// <summary>
/// FilesStream写入用法
/// </summary>
private void FileStreamWriteFile()
{
FileStream fsFile = new FileStream(@"D:\log.txt", FileMode.Create);
charDataValue="This is test string".ToCharArray();
byDataValue=new byte[charDataValue.Length];

//将字符数组转换成字节数组
Encoder ec=Encoding.UTF8.GetEncoder();
ec.GetBytes(charDataValue,0,charDataValue.Length,byDataValue,0,true);

//将指针设定起始位置
fsFile.Seek(0,SeekOrigin.Begin);
//写入文件
fsFile.Write(byDataValue,0,byDataValue.Length);
}
匿名用户
2013-08-30
展开全部
不错啊,杨信
1 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式