C#知识点 拆箱装箱 文件读取和写入 读取流与 写入流

一、拆箱装箱

 //装箱: 是将值类型转化为引用类型的过程
 //拆箱: 是将引用类型转化为值类型的过程

 int a = 1;
 object b = a;   //装箱操作

 object c = 1;
 int d = (int)c; // 拆箱操作

 //装箱:用于在垃圾回收堆内存中储存的值类型 
 //拆箱:从Object类型到值类型 或从接口类型到实现接口的值类型的转换

二、文件的读取和写入

使用File、Directory、FileInfo和DirectoryInfo用于文件和目录操作的类。

1. 常用功能对比

在这里插入图片描述

2.如何选择

  1. 用 File/Directory :​​
  • 只需单次操作(如读取一次文件)。
  • 路径是动态生成的,无需重复操作同一对象。
  1. ​​用 FileInfo/DirectoryInfo 当:​​
  • 需要多次操作同一文件/目录(如监控属性变化)。
  • 需要缓存文件/目录的元数据(如大小、创建时间)。
  • 需要更面向对象的编程风格(如方法链式调用)。

三、使用FileStream读数据写数据

string path =  Directory.GetCurrentDirectory() + "\\写文件.txt";
FileInfo fi = new FileInfo("path")
//创建文件  当路径不存在时 会创建一个
fi.Directory.Create();

// FileStream 文件中任何位置的读写
// 1. 打开文件  确定文件流 是写入数据还是读数据  写数据
FileStream stream = fi.OpenWrite();
// 2. 写数据
byte[] bytes = { 1, 2, 3, 4, 5, 6, 7, 8 };
// Write 写入数据 bytes 要写书的数据  写多少? 0 从0开始  写进去bytes.Length 个
stream.Write(bytes, 0, bytes.Length);
// 3. 关闭文件流 释放掉与之关联的所有资源
stream.Close();
Console.WriteLine("写入成功");



 // 读取数据
 // 1. 打开文件流 确定是读还是写  读数据
 FileStream streamRead = fi.OpenRead();

 // 2. 将读到的数据放到暂存区 不确定能读取到几个 可以是用FileInfo中的Length属性 获取读取文件中的数据长度
 byte[] bytes1 = new byte[fi.Length];
 //Read 读数据 并返回读到的数据个数
 int a =  streamRead.Read(bytes1, 0, bytes1.Length);
 Console.WriteLine(a);
 foreach (var item in bytes1)
 {
     Console.WriteLine(item);
 }

 // 关闭流
 streamRead.Close();

四、StreamWriter写入流与StreamReader读取流

写入流中 public StreamWriter (string path, bool append);
若要追加数据到该文件中,则为 true;若要覆盖该文件,则为 false。 如果指定的文件不存在,该参数无效,且构造函数将创建一个新文件。

string path=Directory.GetCurrentDirectory()+ "\\TextFile4.txt";
// 定义写入流
StreamWriter sw=new StreamWriter(path);
sw.WriteLine("ccccc");
sw.Close();
//定义读取流
StreamReader sr=new StreamReader(path);
Console.WriteLine(sr.ReadToEnd());
sr.Close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值