首页 > 代码库 > 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();        }    }}

 程序截图:

附录记事本文件内容: