码迷,mamicode.com
首页 > 其他好文 > 详细

文件读取(filestream)

时间:2017-04-19 00:32:35      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:gre   自身   派生   log   man   reading   namespace   bsp   文件读取   

在stream中已经介绍过,文件读取应用filestream,其是以字节为单位读取文件的。在操作中,当应用filestream创建文件流,读取时应先定义一个字节数组,在转化成char类型,最后转化成string类型。我们其实可以通过streamreader/writer类来直接读取字符串。在此简单介绍一下,流的读取方式除了创建流类中自定义的read/write方法(通过byte类型进行),也可以通过其他读取类进行读取。streamreader/writer类,binaryread/write以及stringreader/writer均继承自textreader/writer抽象类,binaryreader/writer可以直接读取int,double,bool等数据类型,StreamReader/writer可直接读取字符串。

      本例以filestream建立文件流,并通过StreamReader/writer进行读写。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace FilestreamandStreamreader
{
    class Program
    {
        static void Main(string[] args)
        {
            string filePathName = "E:\\test.txt";

            using (FileStream fs = new FileStream(filePathName, FileMode.Create, FileAccess.Write))
            {
                StreamWriter sw = new StreamWriter(fs);
                sw.Write("LIU");
                sw.WriteLine("Ljksdjfjk");
                sw.WriteLine("chengjisih");
                sw.Flush();
            }

            using (FileStream fs = new FileStream(filePathName, FileMode.Open, FileAccess.Read))
            {
                StreamReader sr = new StreamReader(fs);
                string str = sr.ReadToEnd();
                Console.WriteLine(str);
                fs.Position = 0;//每次重新调用时,fs位置归零
                Console.WriteLine(sr.ReadLine());

                //fs.Position = 0;
                //char[] chars = new char[10];
                //sr.Read(chars, 0, 10);
                //for (int i = 0; i < chars.Length; i++)
                //{
                //    Console.WriteLine(chars[i]);
                //}

                fs.Close();
                Console.ReadKey();
            }

        }
    }
}

streamreader其构造函数重载很多,可以满足不同的需求,只要是构造函数的入口参数为流都可以用它来读取,比如httpwebreponse等的返回值等,上例中

StreamReader sr = new StreamReader(fs)语句,入口参数可以直接为路径,也可以为
StreamReader sr = new StreamReader(File。Create(。。。。));继承自textreader/writer的三个派生类其实就是一个流的三种读取器,离开这三个类,用建立流对象的自身的write/read方法依旧可以。


以上为对流概念的基本理解

文件读取(filestream)

标签:gre   自身   派生   log   man   reading   namespace   bsp   文件读取   

原文地址:http://www.cnblogs.com/llstart-new0201/p/6731222.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!