IO 磁盘总结

IO 磁盘

1.读取

首先引用一个using System.IO;引用空间
其次
string ste= File.ReadAllText("E:\bt.txt",Encoding.Default); //读取
Console.WriteLine(ste);

2.写入
File.WriteAllText("E:\bt.txt", "哈哈");

3.读取二进制文件
File.ReadAllBytes("E:\bt.txt");
Console.WriteLine("成功");

4.流文件
FileStream fs = new FileStream("E:\bt.txt",FileMode.OpenOrCreate,FileAccess.Read);
StreamReader dx = new StreamReader (fs);//读取流文件
string i= dx.ReadToEnd();
Console.WriteLine(i);

5.查看所有文件当前
string [] u= Directory.GetFiles("C:");
for (int i = 0; i < u.Length; i++)
{

Console.WriteLine(u[i]);


}

}

6.序列化与反序列化
c#中序列化就是把一个对象保存到一个文件或数据库字段中去。
应用程序的时候往往要将程序的某些数据存储在内存中,然后将其写入某个文件或是将它传输到网络中的另一台计算机上以实现通讯。这个将程序数据转化成能被存储并传输的格式的过程被称为"序列化"(Serialization),而它的逆过程则可被称为"反序列化"(Deserialization)。
序列化用途:
1、在进程下次启动时读取上次保存的对象的信息
2、在不同的AppDomain或进程之间传递数据
3、在分布式应用系统中传递数据


反序列

可以通过从存储区中读取或反序列化对象的状态,重新创建该对象
反序列化:
  1.定义一个装载对象的类型
  2.创建一个读出文件流
  3.定义要反序列化的类型
  4.调用反序列化方法

序列化格式例子

List<string> inputList = new List<string>() { "str1","str2","str3"};
using (FileStream fsWriter = new FileStream(@"tmp.dat",FileMode.Create,FileAccess.Write))
{
BinaryFormatter bf = new BinaryFormatter();
//序列化
bf.Serialize(fsWriter, inputList);
}

反序列化
List<string> inputList = new List<string>() { "str1","str2","str3"};
using (FileStream fsWriter = new FileStream(@"tmp.dat",FileMode.Create,FileAccess.Write))
{
BinaryFormatter bf = new BinaryFormatter();
//序列化
bf.Serialize(fsWriter, inputList);
}

xml序列化与反序列
List<string> inputList = new List<string>() { "str1","str2"};
using (FileStream fsWriter = new FileStream(@"tmp.xml",FileMode.Create,FileAccess.Write))
{
XmlSerializer xs = new XmlSerializer(typeof(List<string>));//序列化
xs.Serialize(fsWriter, inputList);
}

反序列化
List<string> outputList = new List<string>();
using (FileStream fsReader = new FileStream(@"tmp.xml",FileMode.Open,FileAccess.Read))
{
XmlSerializer xs = new XmlSerializer(typeof(List<string>));
outputList = xs.Deserialize(fsReader) as List<string>;
}




原文地址:https://www.cnblogs.com/liyiyong/p/5155668.html