天天看点

FileStream读写文件【StreamWriter 和 StreamReader】

 FileStream对象表示在磁盘或网络路径上指向文件的流。这个类提供了在文件中读写字节的方法,但经常使用StreamReader或StreamWriter执行这些功能。这是因为FileStream类操作的是字节和字节数组,而Stream类操作的是字符数据。字符数据易于使用,但是有些操作,比如随机文件访问(访问文件中间某点的数据),就必须由FileStream对象执行.

其中创建FileStream对象最简单的构造函数如下:

1

FileStream读写文件【StreamWriter 和 StreamReader】

        FileStream file  =   new  FileStream(fileName,FileMode.Member);

2

FileStream读写文件【StreamWriter 和 StreamReader】

        FileStream file  =   new  FileStream(fileName, FileMode.Member, FileAccess.Member); 而FileAccess的成员:

成 员 说 明
Read 打开文件,用于只读
Write 打开文件,用于只写
ReadWrite 打开文件,用于读写

对文件进行不是FileAccess枚举成员指定的操作会导致抛出异常。此属性的作用是,基于用户的身份验证级别改变用户对文件的访问权限。

在FileStream构造函数不使用FileAccess枚举参数的版本中,使用默认值FileAccess. ReadWrite。

FileMode枚举成员,使用每个值会发生什么,取决于指定的文件名是否表示已有的文件。

成 员 文 件 存 在 文件不存在
Append 打开文件,流指向文件的末尾,只能与枚举FileAccess.Write联合使用 创建一个新文件。只能与枚举FileAccess.Write联合使用
Create 删除该文件,然后创建新文件 创建新文件
CreateNew 抛出异常 创建新文件
Open 打开现有的文件,流指向文件的开头 抛出异常
OpenOrCreate 打开文件,流指向文件的开头 创建新文件
Truncate 打开现有文件,清除其内容。流指向文件的开头,保留文件的初始创建日期 抛出异常

FileStream类操作的是字节和字节数组,而Stream类操作的是字符数据

StreamWriter允许将字符和字符串写入文件,它处理底层的转换,向FileStream对象写入数据。StreamReader也类似。

实例:

  1

FileStream读写文件【StreamWriter 和 StreamReader】

using  System;

  2

FileStream读写文件【StreamWriter 和 StreamReader】

using  System.Data;

  3

FileStream读写文件【StreamWriter 和 StreamReader】

using  System.IO;

  4

FileStream读写文件【StreamWriter 和 StreamReader】

using  System.Text;

  5

FileStream读写文件【StreamWriter 和 StreamReader】

  6

FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】

/// <summary>

  7

FileStream读写文件【StreamWriter 和 StreamReader】

/// Summary description for FileReadAndWrite

  8

FileStream读写文件【StreamWriter 和 StreamReader】

/// </summary>

  9

FileStream读写文件【StreamWriter 和 StreamReader】

public   class  FileReadAndWrite

 10

FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】

{

 11

FileStream读写文件【StreamWriter 和 StreamReader】

    public FileReadAndWrite()

 12

FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】

{

 13

FileStream读写文件【StreamWriter 和 StreamReader】

        //

 14

FileStream读写文件【StreamWriter 和 StreamReader】

        // TODO: Add constructor logic here

 15

FileStream读写文件【StreamWriter 和 StreamReader】

        //

 16

FileStream读写文件【StreamWriter 和 StreamReader】

    }

 17

FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】

    /// <summary>

 18

FileStream读写文件【StreamWriter 和 StreamReader】

    /// 用FileStream写文件

 19

FileStream读写文件【StreamWriter 和 StreamReader】

    /// </summary>

 20

FileStream读写文件【StreamWriter 和 StreamReader】

    /// <param name="str"></param>

 21

FileStream读写文件【StreamWriter 和 StreamReader】

    /// <returns></returns>

 22

FileStream读写文件【StreamWriter 和 StreamReader】

    public void FileStreamWriteFile(string str)

 23

FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】

{

 24

FileStream读写文件【StreamWriter 和 StreamReader】

        byte[] byData;

 25

FileStream读写文件【StreamWriter 和 StreamReader】

        char[] charData;

 26

FileStream读写文件【StreamWriter 和 StreamReader】

        try

 27

FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】

{

 28

FileStream读写文件【StreamWriter 和 StreamReader】

            FileStream nFile = new FileStream("love.txt", FileMode.Create);

 29

FileStream读写文件【StreamWriter 和 StreamReader】

            //获得字符数组

 30

FileStream读写文件【StreamWriter 和 StreamReader】

            charData = str.ToCharArray();

 31

FileStream读写文件【StreamWriter 和 StreamReader】

            //初始化字节数组

 32

FileStream读写文件【StreamWriter 和 StreamReader】

            byData = new byte[charData.Length];

 33

FileStream读写文件【StreamWriter 和 StreamReader】

            //将字符数组转换为正确的字节格式

 34

FileStream读写文件【StreamWriter 和 StreamReader】

            Encoder enc = Encoding.UTF8.GetEncoder();

 35

FileStream读写文件【StreamWriter 和 StreamReader】

            enc.GetBytes(charData, 0, charData.Length,byData,0,true);

 36

FileStream读写文件【StreamWriter 和 StreamReader】

            nFile.Seek(0, SeekOrigin.Begin);

 37

FileStream读写文件【StreamWriter 和 StreamReader】

            nFile.Write(byData, 0, byData.Length);

 38

FileStream读写文件【StreamWriter 和 StreamReader】

        }

 39

FileStream读写文件【StreamWriter 和 StreamReader】

        catch (Exception ex)

 40

FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】

{

 41

FileStream读写文件【StreamWriter 和 StreamReader】

            throw ex;

 42

FileStream读写文件【StreamWriter 和 StreamReader】

        }

 43

FileStream读写文件【StreamWriter 和 StreamReader】

    }

 44

FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】

    /// <summary>

 45

FileStream读写文件【StreamWriter 和 StreamReader】

    /// FileStream读取文件

 46

FileStream读写文件【StreamWriter 和 StreamReader】

    /// </summary>

 47

FileStream读写文件【StreamWriter 和 StreamReader】

    /// <param name="filePath"></param>

 48

FileStream读写文件【StreamWriter 和 StreamReader】

    /// <returns></returns>

 49

FileStream读写文件【StreamWriter 和 StreamReader】

    public string FileStreamReadFile(string filePath)

 50

FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】

{

 51

FileStream读写文件【StreamWriter 和 StreamReader】

        byte[] data = new byte[100];

 52

FileStream读写文件【StreamWriter 和 StreamReader】

        char[] charData = new char[100];

 53

FileStream读写文件【StreamWriter 和 StreamReader】

        try

 54

FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】

{

 55

FileStream读写文件【StreamWriter 和 StreamReader】

            FileStream file = new FileStream(filePath, FileMode.Open);

 56

FileStream读写文件【StreamWriter 和 StreamReader】

            //文件指针指向0位置

 57

FileStream读写文件【StreamWriter 和 StreamReader】

            file.Seek(0, SeekOrigin.Begin);

 58

FileStream读写文件【StreamWriter 和 StreamReader】

            //读入两百个字节

 59

FileStream读写文件【StreamWriter 和 StreamReader】

            file.Read(data, 0, 200);

 60

FileStream读写文件【StreamWriter 和 StreamReader】

            //提取字节数组

 61

FileStream读写文件【StreamWriter 和 StreamReader】

            Decoder dec = Encoding.UTF8.GetDecoder();

 62

FileStream读写文件【StreamWriter 和 StreamReader】

            dec.GetChars(data, 0, data.Length, charData, 0);

 63

FileStream读写文件【StreamWriter 和 StreamReader】

        }

 64

FileStream读写文件【StreamWriter 和 StreamReader】

        catch (Exception ex)

 65

FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】

{

 66

FileStream读写文件【StreamWriter 和 StreamReader】

            throw ex;

 67

FileStream读写文件【StreamWriter 和 StreamReader】

        }

 68

FileStream读写文件【StreamWriter 和 StreamReader】

        return Convert.ToString(charData);

 69

FileStream读写文件【StreamWriter 和 StreamReader】

    }

 70

FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】

    /// <summary>

 71

FileStream读写文件【StreamWriter 和 StreamReader】

    /// StreamWriter写文件

 72

FileStream读写文件【StreamWriter 和 StreamReader】

    /// </summary>

 73

FileStream读写文件【StreamWriter 和 StreamReader】

    public void StreamWriterWriteFile()

 74

FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】

{

 75

FileStream读写文件【StreamWriter 和 StreamReader】

        try

 76

FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】

{

 77

FileStream读写文件【StreamWriter 和 StreamReader】

            FileStream nFile = new FileStream("love.txt", FileMode.CreateNew);

 78

FileStream读写文件【StreamWriter 和 StreamReader】

            StreamWriter writer = new StreamWriter(nFile);

 79

FileStream读写文件【StreamWriter 和 StreamReader】

 80

FileStream读写文件【StreamWriter 和 StreamReader】

            writer.WriteLine("I love You!");

 81

FileStream读写文件【StreamWriter 和 StreamReader】

            writer.WriteLine("Do you love me!");

 82

FileStream读写文件【StreamWriter 和 StreamReader】

            writer.Close();

 83

FileStream读写文件【StreamWriter 和 StreamReader】

        }

 84

FileStream读写文件【StreamWriter 和 StreamReader】

        catch

 85

FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】

{ }

 86

FileStream读写文件【StreamWriter 和 StreamReader】

    }

 87

FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】

    /// <summary>

 88

FileStream读写文件【StreamWriter 和 StreamReader】

    /// StreamReader读取文件

 89

FileStream读写文件【StreamWriter 和 StreamReader】

    /// </summary>

 90

FileStream读写文件【StreamWriter 和 StreamReader】

    /// <returns></returns>

 91

FileStream读写文件【StreamWriter 和 StreamReader】

    public string StreamReaderReadFile()

 92

FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】

{

 93

FileStream读写文件【StreamWriter 和 StreamReader】

        string str="";

 94

FileStream读写文件【StreamWriter 和 StreamReader】

        try

 95

FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】

{

 96

FileStream读写文件【StreamWriter 和 StreamReader】

            FileStream file = new FileStream("love.txt", FileMode.Open);

 97

FileStream读写文件【StreamWriter 和 StreamReader】

            StreamReader sr = new StreamReader(file);

 98

FileStream读写文件【StreamWriter 和 StreamReader】

            while (sr.ReadLine()!=null)

 99

FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】

{

100

FileStream读写文件【StreamWriter 和 StreamReader】

                str += sr.ReadLine();

101

FileStream读写文件【StreamWriter 和 StreamReader】

            }

102

FileStream读写文件【StreamWriter 和 StreamReader】

            //或者str = sr.ReadToEnd();

103

FileStream读写文件【StreamWriter 和 StreamReader】

            sr.Close();

104

FileStream读写文件【StreamWriter 和 StreamReader】

        }

105

FileStream读写文件【StreamWriter 和 StreamReader】

        catch

106

FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】
FileStream读写文件【StreamWriter 和 StreamReader】

{ }

107

FileStream读写文件【StreamWriter 和 StreamReader】

        return str;

108

FileStream读写文件【StreamWriter 和 StreamReader】

    }

109

FileStream读写文件【StreamWriter 和 StreamReader】

}

110

FileStream读写文件【StreamWriter 和 StreamReader】

继续阅读