A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© u010209195 高级黑马   /  2014-2-12 20:56  /  1661 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

FileStream 和StreamRead的区别  ???
最好有简单代码注释一下

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

3 个回复

倒序浏览
#region
            FileStream fs;
            //读取文件所在路径
            string filePath = "c:\\file1.txt";
          //打开文件
            try
            {
                fs = new FileStream(filePath,FileMode.Open);
            }
            catch
            {

                Console.WriteLine("文件打开失败");
                return;
            }
            //尚未读取的文件内容长度
            long left = fs.Length;
            //存储读取结果
            byte[] bytes=new byte[100];
            //每次读取长度
            int length = bytes.Length;
            //读取位置
            int start = 0;
            //实际返回结果长度
            int num = 0;
            //当文件为读取长度大于0时,不断进行读取
            while (left>0)
            {
                fs.Position = start;
                num = 0;
                if (left < maxLength)
                {
                    num = fs.Read(bytes, 0, Convert.ToInt32(left));
                }
                else
                {
                    num = fs.Read(bytes,0,maxLength);
                }
                if (num==0)
                {
                    break;
                }
                start += num;
                left -= num;
                Console.WriteLine(Encoding.UTF8.GetString(bytes));
            }
            Console.WriteLine("end of file");
            Console.ReadLine();
            fs.Close();
            #endregion

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
StreamReader1、利用流对象创建StreamReader对象。
文件流:
FileStream fs=new FileStream(filePath,FileMode.Open,FileAccess.ReadWrite);
StreamReader sr=new StreamReader(fs);//对文件流封装
2、StreamReader(String path).如果需要处理的是文件流,则可以根据文件路径创建一个以UTF8编码的StreamReader对象。例如:
StreamReader sr=new StreamReader(c://file1.txt);
与该方法等价的有File及FileInfo类提供的OpenText方法。例如:
StreamReader sr=File.OpenText("c:\\file1.txt");
默认情况下,StreamReader采用UTF8编码形式,仅可读取UTF8格式的文件,如果读取其他格式的文件,必须指定采用的编码。例如:
StreamReader sr=new StreamReader(@"c:\\file1.txt",Encoding.Default);
回复 使用道具 举报
FileStream:是以文件流的形式读写,可适用于所有类型的文件;
StreamRead:也可以读写文件,读写文本文件;

【FileStream以流的形式读写】
static void Main(string[] args)
{
using (FileStream fssource = new FileStream(@"path1", FileMode.Open, FileAccess.Read))
{
using (FileStream fsout = new FileStream(@"path2", FileMode.Create, FileAccess.Write))
{
byte[] bt = new byte[1024 * 1024 * 10];
int res = 0;
while ((res = fssource.Read(bt, 0, bt.Length)) > 0)
{
fsout.Write(bt, 0, res);
}
}
}
}

【StreamReader两种读取方式】:
StreamReader sr = new StreamReader("test.txt", Encoding.Default);
while (!sr.EndOfStream)
{
Console.WriteLine(sr.ReadLine());
}
Console.WriteLine("-----------------");
StreamReader sr1 = new StreamReader("test.txt", Encoding.Default);
string mys=string.Empty;
while ((mys=sr1.ReadLine()) != null)
{
Console.WriteLine(mys);
}
Console.ReadKey();
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马