首页 新闻 搜索 专区 学院

用BinaryReader与FileStream的Read方法读出的byte数组有什么不同?

0
悬赏园豆:5 [已解决问题] 解决于 2013-06-05 21:45

//方法如下,我初步进行比较,好像(test1()和test2())二者没什么区别,byteData中的结果都是一样的吧?
//而且,用BinaryReader(既test)好像是比较标准的写法 既然结果是一样的,

   他为什么要用两个类(FileStream BinaryReader)这样不觉得多此一举吗?

    class Program
    {
        static void Main(string[] args)
        {
            test1();
            Console.ReadKey();
        }
        static void test1()
        {
            //把文件转换成二进制流
            byte[] byteData = new byte[100];
            FileStream fs = new FileStream(@"c:\1.txt", FileMode.Open, FileAccess.Read);
            BinaryReader read = new BinaryReader(fs);
            read.Read(byteData, 0, byteData.Length);
            foreach (byte b in byteData)
            {
                Console.Write(" {0} ", b);
            }
        }
        static void test2()
        {
            //把文件转换成二进制流
            byte[] byteData = new byte[100];
            FileStream fs = new FileStream(@"c:\1.txt", FileMode.Open, FileAccess.Read);
            fs.Read(byteData, 0, byteData.Length);
            foreach (byte b in byteData)
            {
                Console.Write(" {0} ", b);
            }
        }
    }
钢的锅的主页 钢的锅 | 初学一级 | 园豆:14
提问于:2012-07-05 10:19
< >
分享
最佳答案
0

你可以看看 BinaryReader 的其它读取方法,它可以指定 Encoding,从而实现读取字符串。

FileStream 可读可写,并且支持异步操作,还能封装非托管IO句柄,只支持文件流。

BinaryReader只能读,不支持异步操作,但支持所有继承至 Stream 的任何流,比如 NetworkStream,MemoryStream.

FileStream和BinaryReader应用了一种设计模式,你可以查查看。

收获园豆:5
Launcher | 高人七级 |园豆:45045 | 2012-07-05 10:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册