拆装箱及文件流

装箱:值类型转换为引用类型
拆箱:引用类型转换为值类型

拆箱装箱发生的前提:
1.必须有继承关系
2.一种是值类型,一种是引用类型,来有可能发生拆装箱

拆装箱的结果:
损耗性能

拆装箱的意义:
尽量避免拆装箱

如何检验是否是拆装箱:
反编译工具中,选择IL
代码中出现BOx即为装箱
UnBOx即为拆箱

文件流
关键字:FileStream
命名空间:System.IO

使用时搭配using使用
读取范例

Using(FileStream fsRead=new FileStream("路径",FIleMode.Open,FileAccess.Read))
{
  byte[] buffer=new byte[fsRead.Length];
                fs.Read(buffer, 0, buffer.Length);
            string str=    System.Text.Encoding.Default.GetString(buffer);
                Console.WriteLine(str);
}

写入范例

string msg = "锄禾日当午,汗滴禾下土。谁知盘中餐,粒粒皆辛苦。";
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(msg);
using (FileStream fs = new FileStream("2,txt",FileMode.Create, FileAccess.Write))
            {
                fs.Write(buffer, 0, buffer.Length);//一次加进去 这是文件比较小
            }

复制大文件

string path1 = @"D:\德云社相声\德云社乙未年开箱整场(1).flv";
            string path2 = @"德云社乙未年开箱整场(1).flv";
            //读取
            using (FileStream fs = new FileStream(path1, FileMode.Open, FileAccess.Read))
            {
                byte[] buffer = new byte[1024 * 1024 * 5];//每次读取5m 容易看 标准化请这么写
                int r = fs.Read(buffer, 0, buffer.Length);
                using (FileStream fsW = new FileStream(path2, FileMode.Create, FileAccess.Write))
                {
                    while (r > 0)
                    {
                        fsW.Write(buffer, 0, r);
                        r = fs.Read(buffer, 0, buffer.Length);
                    }
                }
            }

专门操作读
关键字:StreamRead
实例

Using(StreamReader sr=new StreamReader("路径"))
{
string line="";
While(line=sr.ReadLine())!=null)
{
 Console.ReadLine(line);
}读取第一行,重复操作可以全部读
  string s= sr.ReadToEnd();//全部读取
}

专门操作写
StreamWrite
Using(StreamWriter sw=new StreamWriter(“路径”))
{
sw.Write(“哈哈”);
}

流文件是专门操作大文件的,FIle操作小文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值