关于c#文件流与二进制的读入写出(二)

来源:互联网 发布:python 股票数据分析 编辑:程序博客网 时间:2024/06/06 12:52

一、使用StreamWriter类写入文件

     应用FileStream类需要许多额外的数据类型转换操作,十分影响效率。本节将介绍另外一种更为简单实用的类写入方法,即StreamWriter类。StreamWriter类允许直接将字符和字符串写入文件。StreamWriter类的构造方法一共有7种,此处只介绍常用的三种,如下所示,以及StreamWriter类的常用方法:

构造函数:

StreamWriter(Stream)  (用UTF-8编码及默认缓冲区大小,为指定的流初始化StreamWriter类的一个新实例)

StreamWriter(String)  (使用默认编码和缓冲区大小,为指定路径上的指定文件初始化StreamWriter类的新实例)

StreamWriter(String,Boolean)  (使用默认编码和缓冲区大小,为指定路径上的指定文件初始化StreamWriter类的新实例。如果该文件存在,则可以将其改写或向其追加。如果该文件不存在,则此构造函数将创建一个新文件

StreamWriter的方法介绍:

Close  (关闭当前的StreamWriter对象和基础流)

Write  (写入流)

WriteLine  (写入重载参数指定的某些数据,后跟行结束符)


实例介绍:

public class StreamWriterTest

{

    public static void Main()

    {

       try

          {

              //保留文件现有数据,以追加写入的方式打开C:\file.txt文件

              StreamWriter m_SW = new StreamWriter(@ "C:\file.txt ",true);

              //向文件写入新字符串,并关闭StreamWriter

             m_SW.WriterLine("Another File Operation Method");

             m_SW.Close();

          }

        catch(IOExecption ex)

        {

            Console.WriteLine("There is an IO exception!");

            Console.WriteLine(ex.Message);

            Console.ReadLine();

            return;

        }

        Console.WriteLine("Write to File Succeed!");

        Console.ReadLine();

        return;

    }

}


二、使用StreamReader类读取文件

    相对于StreamWriter类,StreamReader类提供了另一种从文件中读取数据的方法。StreamReader类的应用方式非常类似于StreamWriter类,其常见构造函数与常用方法如下:

StreamReader(Stream)  (为指定的流初始化StreamReader类的新实例)

StreamReader(String)  (为指定的文件名初始化StreamReader类的新实例)

方法:

Close  (关闭StreamReader对象和基础流,并释放与读取器关联的所有系统资源)

Read  (读取输入流中的下一个字符或下一组字符)

ReadLine  (从当前流中读取一行字符并将数据作为字符串返回)

ReadToEnd  (从流的当前位置到末尾读取流)

实例:

Public class StreamReaderTest

{

    public static void Main()

{

    try

{

     //以绝对路径方式构造新的StreamReader对象

    StreamReader  m_SW =new StreamReader(@ "c:\file.txt");

    //用ReadToEnd方法将C:\file.txt中的数据全部读入字符串m_Data中,并关闭StreamReader

    string m_Data = m_SW.ReadToEnd();

    Console.WriteLine(m_Data);

    m_SW.Close();

}

   catch(IOException ex)

{

   Console.WriteLine("There is an IO exception!");

   Console.WriteLine(ex.Message);

   Console.ReadLine();

   return;

}

Console.ReadLine();

return;

}

}

0 0