首页 > 代码库 > c#文件之读操作摸索学习
c#文件之读操作摸索学习
主要知识点:
一. FileStream file_read = new FileStream("1.txt", FileMode.Open, FileAccess.Read);//只读权限打开1.txt文件
参数1:
"1.txt":文件路径,通常用字符串变量或者字符串常量表示,如:"d:\\1.txt";
参数2:
FileMode.Open:打开模式,此种方式如果存在则打开,否则抛出异常。
FileMode.Append:追加模式,打开文件或新建文件并查找到文件尾,只能在FileAccess.Write权限下使用。
FileMode.Create:指定操作系统创建文件,如果已存在相同名称文件,则覆盖。
FileMode.CreateNew:指定操作系统创建文件,如果已存在相同名称文件,则抛出异常。
FileMode.OpenOrCreate:如果文件存在,则打开。如果不存在则新建一个文件。
FileMode.Truncate:打开现有文件,文件一旦被打开就被截断为0字节大小。
参数3:
FileAccess.Read:只读写权限
FileAccess.ReadWrite:读写权限
FileAccess.Write:写权限
二、StreamReader sr = new StreamReader(file_read,Encoding.Default);//获取读入流读取1.txt
参数1:
file_read:获取文件流,即获取指定文件文件流,通常用字符串变量表示。
参数2:
Encoding.Default:获取操作系统的当前ANSI代码页的编码
Encoding.UTF8:获取UTF8格式的编码
Encoding.Unicode:获取Unocode格式的编码
Encoding.ASCII:获取ASCLL格式的编码
Encoding.Convert (Encoding, Encoding, Byte[]) :将一种编码方式转换成另一种编码方式。
Encoding.Convert (Encoding, Encoding, Byte[], Int32, Int32) :將某一范围内由一种编码方式转换成另一种编码方式。
三、string[] filelist = File.ReadAllLines("1.txt", Encoding.Default);//读取文件内容所有行保存到字符串数组中。
四、string line = sr.ReadLine();//读取一行文件内容,从读入流获取内容。
例子一:
核心方法:string[] filelist = File.ReadAllLines("1.txt", Encoding.Default);//读取文件内容所有行保存到字符串数组中
代码如下:
using System;using System.Collections.Generic;using System.Text;using System.IO;namespace studyread{ class Program { static void Main(string[] args) { FileStream file_read = new FileStream("1.txt", FileMode.Open, FileAccess.Read);//新建文件流,只读权限打开1.txt文件 string[] filelist = File.ReadAllLines("1.txt", Encoding.Default);//读取文件内容所有行保存到字符串数组中。 //循环打印读入内容。 for (int i = 0; i <= filelist.Length - 1; i++) { Console.WriteLine("第{0}行内容为:{1}", i, filelist[i]); } Console.ReadKey(); } }}
运行截图:
例子二:
核心语句:string line = sr.ReadLine();//读取一行文件内容,从读入流获取内容。
代码如下:
using System;using System.Collections.Generic;using System.Text;using System.IO;namespace studyread{ class Program { static void Main(string[] args) { FileStream file_read = new FileStream("1.txt", FileMode.Open, FileAccess.Read);//新建文件流,只读权限打开1.txt文件 StreamReader sr = new StreamReader(file_read, Encoding.Default);//新建读入流取文件流 string line= sr.ReadLine();;//读取一行内存保存给字符串line Console.WriteLine(line); Console.ReadKey(); } }}
运行截图:
当然上列代码利用循环也可以将所有内容读取出来,达到例子一的效果。
修改源码如下:
using System;using System.Collections.Generic;using System.Text;using System.IO;namespace studyread{ class Program { static void Main(string[] args) { FileStream file_read = new FileStream("1.txt", FileMode.Open, FileAccess.Read);//新建文件流,只读权限打开1.txt文件 StreamReader sr = new StreamReader(file_read, Encoding.Default);//新建读入流取文件流 string[] filelist = File.ReadAllLines("1.txt", Encoding.ASCII);//这里主要用来获取总行数filelist.Length string line;//定义字符串变量line,用来保存读取的内容 //循环读取并打印文件每一行内容,即 for (int i = 0; i <= filelist.Length - 1; i++) { line = sr.ReadLine();//读取一行内容保存到字符串line中。 Console.WriteLine(line); } Console.ReadKey(); } }}
程序截图:
附录记事本文件内容: