C#IO 文件读取笔记二
2017-02-21 15:55
190 查看
FileStream对象表示指向磁盘或网络路径上的文件的流,这个类提供了在文件中读写字节的方法,但经常使用StreamReader或StreamWriter执行这些功能,
这是因为FileStream类操作的是字节和字节数组,而Stream类操作的是字符数据。字符数据易于使用,但是有些操作,如随机文件的访问(访问文件中某点
的数据),就必须由FileStream对象执行。
创建FileStream对象最简单的方法只有两个参数,即文件名和FileMode枚举值
如:FileStream aFile=new FileStream(filename,FileMode.<member>);
FileMode枚举包含几个成员,指定如何打开或创建文件
另外一个常用参数就是:FIleAccess枚举,它指定了流的作用
File和FileInfo类都提供了OpenWrite()和OpenRead()方法,前者只允许写入文件,后者打开了只读的文件,这些提供了快捷方式,就可以不必以FileStream构造
函数的形式提供所有必要的信息
如: FileStream aFile=File.OpenRead("Data.txt");
FileStream随机访问文件的位置是通过Seek()方法实现,该方法有两个参数:第一个参数指定文件指针移动的距离,第二个参数指定开始计算的起始位置,用SeekOrigin
枚举的一个值表示:Begin、Current、End
如:aFile.Seek(8,SeekOrigin.Begin);//将文件指针移动到文件的第8个字节处,起始位置是文件的第一个字节
aFile.Seek(2,SeekOrigin.Current);//将文件从当前位置向前移动2个字节
aFile.Seek(-5,SeekOrigin.End);//从文件末尾,查找倒数第五个字节
StreamWriter:
FileStream使用比较麻烦,因为它是操作字节数组,但是StreamRreader使用起来相对方便,它操作的是字符
可以通过已经有的FileStream对象创建StreamWriter对象,也可以直接从文件中创建StreamWriter()对象
如: FileStream aFile=new FileStream("Log.txt",FileMode.CreateNew):
StreamWriter sw=new StreamWriter(aFile);
或: StreamWriter sw=new StreamWriter("Log.txt",true);
那个布尔值指定是追加文件还是创建新文件,false则创建一个新文件,或者截取现有文件,并打开它,true则打开文件,保留原来的数据,如果找不到文件,就创建一个
新文件
将数据写入文件中用的是Write()和WriteLine()方法
StreamReader
该类用于从数据源中读取数据,大多数情况下,数据源是磁盘上的文件或网络的某些位置,在任何可以发送数据的位置都可以是数据源
创建方式:
FileStream aFile=new FileStream("Log.txt",FileMode.Open):
StreamReader sr=new StreamReader(aFile);
或: StreamReader sr=new StreamReader("Log.txt");
读取数据:
Read()方法将流的下一个字符作为正整数值返回,如果到达了流的结尾处,则返回-1
对于小型文件可以用ReadToEnd()方法读取整个文件,并且返回的是字符串
这是因为FileStream类操作的是字节和字节数组,而Stream类操作的是字符数据。字符数据易于使用,但是有些操作,如随机文件的访问(访问文件中某点
的数据),就必须由FileStream对象执行。
创建FileStream对象最简单的方法只有两个参数,即文件名和FileMode枚举值
如:FileStream aFile=new FileStream(filename,FileMode.<member>);
FileMode枚举包含几个成员,指定如何打开或创建文件
另外一个常用参数就是:FIleAccess枚举,它指定了流的作用
File和FileInfo类都提供了OpenWrite()和OpenRead()方法,前者只允许写入文件,后者打开了只读的文件,这些提供了快捷方式,就可以不必以FileStream构造
函数的形式提供所有必要的信息
如: FileStream aFile=File.OpenRead("Data.txt");
FileStream随机访问文件的位置是通过Seek()方法实现,该方法有两个参数:第一个参数指定文件指针移动的距离,第二个参数指定开始计算的起始位置,用SeekOrigin
枚举的一个值表示:Begin、Current、End
如:aFile.Seek(8,SeekOrigin.Begin);//将文件指针移动到文件的第8个字节处,起始位置是文件的第一个字节
aFile.Seek(2,SeekOrigin.Current);//将文件从当前位置向前移动2个字节
aFile.Seek(-5,SeekOrigin.End);//从文件末尾,查找倒数第五个字节
StreamWriter:
FileStream使用比较麻烦,因为它是操作字节数组,但是StreamRreader使用起来相对方便,它操作的是字符
可以通过已经有的FileStream对象创建StreamWriter对象,也可以直接从文件中创建StreamWriter()对象
如: FileStream aFile=new FileStream("Log.txt",FileMode.CreateNew):
StreamWriter sw=new StreamWriter(aFile);
或: StreamWriter sw=new StreamWriter("Log.txt",true);
那个布尔值指定是追加文件还是创建新文件,false则创建一个新文件,或者截取现有文件,并打开它,true则打开文件,保留原来的数据,如果找不到文件,就创建一个
新文件
将数据写入文件中用的是Write()和WriteLine()方法
StreamReader
该类用于从数据源中读取数据,大多数情况下,数据源是磁盘上的文件或网络的某些位置,在任何可以发送数据的位置都可以是数据源
创建方式:
FileStream aFile=new FileStream("Log.txt",FileMode.Open):
StreamReader sr=new StreamReader(aFile);
或: StreamReader sr=new StreamReader("Log.txt");
读取数据:
Read()方法将流的下一个字符作为正整数值返回,如果到达了流的结尾处,则返回-1
对于小型文件可以用ReadToEnd()方法读取整个文件,并且返回的是字符串
相关文章推荐
- C#IO 文件读取笔记一(File类和Directory类相关属性,FileInfo类和DirectoryInfo类)
- C# System.IO.FileStream 读取被其他程序打开的文件提示“文件正由另一进程使用,因此该进程无法访问该文件。”
- 黑马程序员之C#学习笔记:C#读取txt文件的方法
- C# IO读取文件问题:正由另一进程使用
- C#笔记(4)保存数据到文件,从文件读取数据
- 【学习笔记】C#文件流联系|读取文件、追加Txt
- C# System.IO.FileStream 读取被其他程序打开的文件提示“文件正由另一进程使用,因此该进程无法访问该文件。”
- [学习笔记]Java文件IO操作------实现对文件的读取与写入
- c# io 读取本地文件
- C#学习笔记——FileStream读取文件示例
- C#笔记 通用文件的读取之二——XML文件的读取与写入
- C#笔记 通用文件的存取之二——XML文件的读取与写入
- C#学习笔记:从文件中读取数据
- C#开发笔记-读取文件,并将文件使用分隔符隔开
- 黑马程序员之C#学习笔记: xml文件读取
- 【笔记】C#读取属性文件的类
- C# System.IO.FileStream 读取被其他程序打开的文件提示“文件正由另一进程使用,因此该进程无法访问该文件。”
- ___16__C#IO创建Text文件并读取显示
- 转载:C# IO读取文件问题:正由另一进程使用
- C#安装项目文件,自动读取参数的安装类(自动安装SQL SERVER数据库)