读写文件流操作

来源:互联网 发布:股票什么时候买入知乎 编辑:程序博客网 时间:2024/05/24 03:53

通常读写问文件的方法的方法有两种,一种主要是利用FileStream的读写直接读写文件,一种是利用StreamReader和StreamWriter这两个流操作类来读写文件。

1.通过FileStream读写文件

(1)File类,用来创建文件流FileStream对象

自定义打开文件的方式:File.Open(String fileName,FileMode);

                      如FileStreamfs=File.Open("C:\\log.txt",FileMode.Append);

打开文件进行读取:File.OpenRead(String fileName);如FileStreamfs=File.OpenRead("C:\\log.txt");

打开文件进行写入:File.OpenWrite(String fileName);如FileStreamfs=File.OpenWrite("C:\\log.txt");

(2)FileStream类,创建和操作文件流FileStream对象

   File类的构造方法有如下几种形式:

FileStream fs=new FileStream(String 文件路径,FileMode 文件打开模式);

FileStream fs=new FileStream(String ,FileMode,FileAccess文件访问方式);

FileStream fs=newFileStream(String,FileMode,FileAccess,FileShare 文件共享方式);

FileMode一共包括6种枚举,告诉操作系统以何种方式打开文件:

   Append:打开现有文件,准备向文件追加数据,只能同FileAccess.Write一起使用;

   Create:指示操作系统创建新文件,如果文件已经存在则覆盖;

   CreateNew:指示操作系统创建新文件,如果文件已经存在则引发异常;

   Open:打开现有文件,打开文件的能力取决于FileAccess所指定的值;

   OpenOrCreate:打开文件,如果文件不存在则创建新文件;

   Truncate:打开现有文件,并且清除文件的内容

FileAccess一共包括3个枚举项:

   Read:对文件读访问;ReadWrite:对文件读或写访问;Write:对文件写操作;

FileShare一共包括4个枚举项:

   None:谢绝共享当前文件;

   Read:允许别的程序读取当前文件;

   ReadWrite:允许别的程序读写当前文件;

   Write:允许别的程序写当前文件;

用FileStream对于文件的操作基本上要经过三个步骤:

  a 创建文件读写流对象

  b 写或读操作

  c 关闭文件流

举例1:

using(FileStreamfs=File.Open("C:\\log.txt",FileMode.Append))

{

byte[] buffer=System.Text.Encoding.Default.GetBytes("HelloWorld!");

fs.Write(buffer,0,buffer.Length);

fs.Close

}

举例2:

using(FileStream fs=newFileStream("C:\\log.txt",FileMode.Open,FileAccess.Read))

{

byte[] buffer=new byte[fs.Length];

fs.Read(buffer,0,buffer.Length);

fs.Close();

}

 

2.通过流读写器读写文件

文件流对象操作的是最底层的字节级数据,可以读取任何文件;而流读写器用来读写文本文件,它从底层封装了文件流,提供更便捷的读写方式,无需编解码操作(它默认使用UTF8编解码方式)。

(1)StreamReader类,用来读取文件

构造方法:

new StreamReader(Stream 读取的文件流);

                 如StreamReader sr=newStreamReader(File.OpenRead("C:\\log.txt"));

new StreamReader(Stream 读取的文件流,Encoding 解码方式);

new StreamReader(String 读取的文件);如StreamReader sr=newStreamReader("C:\\log.txt");

File.OpenText(String 读取的文件);如StreamReadersr=File.OpenText(C:\\log.txt);

读方法

public string ReadLine();

public override string ReadToEnd();

(2)StreamWriter类,用来写入文件

构造方法:

StreamWriter(Stream 操作的文件流对象);

            如StreamWritersw=new StreamWriter(File.OpenWrite("C:\\log.txt"));

StreamWriter(String 写入的文件);如StreamWriter sw=newStreamWriter("C:\\log.txt");

StreamWriter(String 写入的文件,Boolean 是否追加);

           如StreamWriter sw=new StreamWriter("C:\\log.txt",false);

StreamWriter(String 写入的文件,Encoding 编码方式);

File.AppendText(String 文件名)以及File.CreateText(String 文件名)

            如StreamWritersw=File.CreateText("C:\\log.txt");

写方法

public void WriteLine(Char);

public void WriteLine(Double);

public void WriteLine(String);

举例1:

using(StreamReader sr=new StreamReader("C:\\log.txt"))

{

String ss=sr.ReadToEnd();

sr.Close();

}

举例2:

using(StreamWriter sw=new StreamWriter("C:\\log.txt"))

{

sw.WriteLine("Hello World!");

sw.Close();

}