C#中ReadByte()怎么用?

 我来答
xiangjuan314
2016-05-23 · TA获得超过3.3万个赞
知道大有可为答主
回答量:2.9万
采纳率:0%
帮助的人:2893万
展开全部
文件读写
C#和java对于文件的操作的思路有点相似,都是采用管道技术和流操作—Stream来实现相应的功能.,开始操作文件的时候用到文件专用流:System.IO命名空间下的Filestream.,其构造函数有很多,现在先介绍一个很常用的方法:
FileStream 构造函数 (String, FileMode);
FileMode有:open,create,openOrcreate,createnew.append, Truncate等几种模式.
下面先看一个例子:
FileInfo mynewfile = new FileInfo("C:\\myfile.txt");//
FileStream sf = new FileStream(mynewfile.ToString(), FileMode.Create);//构造函数,以创建模式打开目标文件,如果不存在就创建相应的文件.
byte[] dataArray = new byte[100000];//字节
new Random().NextBytes(dataArray);//创建随机字节
for (int i = 0; i < dataArray.Length; i++)
{
sf.WriteByte(dataArray[i]);//将字节写入文件理.
}
其他构造方法有:

我在这里就不多介绍了,大家可以参考Msdn的文件.关于文件的读写还有个更好的StreamWriter/和StreamReader.下一节将继续介绍.
FielStream类操作的是字节和字节数组,字符数据易于使用,但是有些操作,比如随机文件访问(访问文件中间某点的数据),就必须由FileStream对象执行。
FielStream类维护内部文件指针,该指针指向文件中进行下一次读写操作的位置。
FileStream只能处理原始字节(raw byte),处理原始字节的功能使用FileStream类可以用于处理任何数据文件

一. FileStream详解
1. (FileStream fs1 = File.Open("c:\\test.txt", FileMode.Open));
FileMode.Open 直接用FileStream类打开文件c:\\test.txt",
2. (FileStream fs2 = File.Open("c:\\test.txt", FileMode.Append, FileAccess.Write));
FileMode.Append,以追加的方式打开文件"c:\\test.txt",将某些内容写到"c:\\test.txt"里.
3.(FileStream fs3 =File.Open("c:\\test.txt", FileMode.Truncate, FileAccess.ReadWrite, FileShare.Read)).
FileMode.Truncate的意思是将文件打开清空里面的内容后再对文件进行操作..
4. FileStream MyFileStream1 = new FileStream(@"c:\Testing.txt", FileMode.Create);
这个方法的意思是创建一个可以读写的文件,并且可以允许其他人读取文件的内容.
二. C#基于流的输入输出.
C#基于流的输入输出.:Stream-通过C# I/O 系统与物理设备连接起来,也就是平时读写的硬盘等物理存贮设备.流/Stream的方法和属性有:
Method/ Properties 描述
void Close() 关闭流
void Flush() 清理流中的内容
int ReadByte() 返回一个整数表示输入的字节数,如果没有数据返回-1
int Read(byte[ ] buf,int offset, int numBytes) 将numBytes个字节读入到byte[ ]的以offset为,起始位置,返回读入成功的字节数

Long Seek(long offset,SeekOrigin origin) 将当前位置定位到以origin为初始位置以后的offset处.
void WriteByte(byte b) 将单个字节写入到一个输出流.
void Write(byte[ ] buf,int offset, int numBytes) 写入byte[ ] buf中从offset开始的numBytes个字节.
bool CanRead 是否可读
bool CanSeek 是否支持寻址
bool CanWrite 是否可以写入数据
long Length 流的长度
long Position 流的当前位置.
三. 流的继承结构
Stream是一个很大类的,在读写文件的时候,可以通过不同的流进行专业的数据读写.

The FileMode and FileAccess的几条规则:
Value 意义
FileMode.Create 创建文件,之前存在同名的文件将被毁掉
FileMode.CreateNew 创建新文件,这个文件之前不存在
FileMode.Open 打开已经存在的文件
FileMode.OpenOrCreate 打开文件如果存在,否则创建新文件
FileMode.Truncate 打开以存在的文件,将它的内容清除掉
FileMode.Append 以追加的形式将数据写入到文件的最后
如果在打开文件的时候想限制文件访问权限,那么可以做如下的构造方法:
FileStream(string filename, FileMode mode, FileAccess access);
文件名 文件模式 操作模式
Access可以是以下当中的一个值:
FileAccess.Read/ FileAccess.Write/ FileAccess.ReadWrite;
FileStreamfs=new FileStream(“c:\\tab.txt”,FileMode.OpenOrCreate,FileAccess.Read);

C#中的StreamReader/StreamWriter

在读写文件的过程中,Filestream只可以进行以字节为单位原始数据流进行读写操作,为此,C#中提供了功能更加强大的StreamReader/ StreamWriter来支持文件的读写. StreamReader/ StreamWriter可以进行以字符为单位的数据读写操作..
一. 用StreamReader的构造函数
StreamReader有很多的构造函数:在这里只列出两个常用和比较常见的
StreamReader sr=new StreamReader (Stream); Stream可以是Filestream;
StreamReader sr=new StreamReader (String); String为指定的文件名初始化 StreamReader 类的新实例。
例如:
//demo1
FileStream filest = new FileStream(@"c:\abc.txt", FileMode.Open, FileAccess.ReadWrite); StreamReader sr = new StreamReader(filest);
//demo2
StreamReader another = new StreamReader(@"c:\abc.txt");
两个StreamReader都指向同一个文件.
StreamReader读取文件中的数据的代码:
FileStream filest = new FileStream(@"c:\abc.txt", FileMode.Open, FileAccess.ReadWrite);
StreamReader sr = new StreamReader(filest);
string strLine = sr.ReadLine();//读取文件中的一行
while(strLine!=null)//判断是否为空,表示到文件最后一行了
{
Console.WriteLine(strLine);
strLine = sr.ReadLine();
}
sr.Close();//关闭流
filest.Close();

程序运行结果和盘中abc.txt文件中的内容比较如下:

二. StreamWriter
StreamWriter 专门用于的向文件中写数据的,它和StreamReader类似,只是一个负责向文件中写数据,一个负责向文件中读数据而已.
StreamWriter 构造函数也有很多.在这里只举例两个构造函数.
StreamWriter sr=new StreamWriter (Stream); Stream可以是Filestream;
StreamWriter sr=new StreamWriter (String); String为指定的文件名初始化StreamWriter 类的新实例。
例如:
//demo1
FileStream filest = new FileStream(@"c:\abc.txt", FileMode.Open, FileAccess.ReadWrite); StreamWriter sw = new StreamWriter (filest);
//demo2
StreamWriter another = new StreamWriter (@"c:\abc.txt");下面的例子可以让大家掌握写文件的方法.
FileStream filewriter = new FileStream(@"C:\abc.txt", FileMode.Append, FileAccess.Write);
以追加的方式打开文件,并进行写入操作.
StreamWriter sw = new StreamWriter(filewriter); 构造函数;
for (char mychar = 'a'; mychar <= 'z'; mychar++)
{
sw.Write(mychar);//将从a—z26个小写字母写入文件中.
}
sw.Close();filewriter.Close();
//demo
FileStream filest = new FileStream(@"c:\abc.txt", FileMode.Open, FileAccess.ReadWrite);
StreamReader sr = new StreamReader(filest);
string strLine = sr.ReadLine();
while(strLine!=null)
{
Console.WriteLine(strLine);
strLine = sr.ReadLine();
}
sr.Close();
filest.Close();
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式