C#基础笔记(第二十一天)
2021-04-27 00:27
标签:dispose end 应用 方式 default adk 两种 笔记 des 1.FIle类、Path类、Directory类复习 Path 操作文件路径 //File.Delete(@"C:\Users\SJD\Desktop\new.txt"); //File.Move(@"C:\Users\SJD\Desktop\new.txt", @"C:\Users\SJD\Desktop\1.txt"); 使用File类来读取数据(读取小文件,因为是一次性读取,大文件用文件流来读取) File的三个读取的方法 1. 以字节数组的形式读取 2.以字符串数组的形式读取,用在操作每行数据上 3.以字符串的形式读取,只用于看一下,不做任何操作 File的三个写入的方法 1. 以字节数组的形式写入,会覆盖原来的内容 2.以字符串数组的形式写入一行一行 3.以字符串的形式直接写入 4.追加不覆盖,前面加上Append,有AppendAllLines和AppendAllText两种 Directory类 2.删除指定路径的文件夹,文件夹目录不是空的就不能删,非要删除,后面加个true 3.没有copy这个方法,但有move(剪切) 4.Directory.GetFiles 获取你指定的文件夹下文件的全路径,后面加上*.格式,可以只读取选择的格式文件路径 2、文件流 FileStream 操作字节的 FileStream fsRead 读 FileStream fsWrite 追加写入 StreamReader StreamWriter 3、序列化 序列化 反序列化 4、窗体应用程序 C#基础笔记(第二十一天) 标签:dispose end 应用 方式 default adk 两种 笔记 des 原文地址:http://www.cnblogs.com/VSMinos/p/7873492.html
操作文件的
File 操作文件,静态类,对文件整体操作。拷贝、删除、剪切等。
Directory 操作目录(文件夹),静态类。
Path 对文件或目录的路径进行操作(很方便)[字符串]
Strean 文件流,抽象类。
File 操作文件
复制、剪切、创建、移除
//File.Create(@"C:\Users\SJD\Desktop\new.txt");
//Console.WriteLine("创建成功");
//Console.ReadKey();
//Console.WriteLine("删除成功");
//Console.ReadKey();
//Console.WriteLine("剪切成功");
//Console.ReadKey();
byte[] buffer = File.ReadAllBytes(@"C:\Users\SJD\Desktop\123.txt");
string str = Encoding.Default.GetString(buffer, 0, buffer.Length);
Console.WriteLine(str);
Console.ReadKey();
string[]str= File.ReadAllLines(@"C:\Users\SJD\Desktop\123.txt",Encoding.Default);
for (int i = 0; i {
Console.WriteLine(str[i]);
}
Console.ReadKey();
string str = File.ReadAllText(@"C:\Users\SJD\Desktop\123.txt", Encoding.Default);
Console.WriteLine(str);
Console.ReadKey();
string str = "今天天气好晴朗,处处好风光";
byte[] buffer = Encoding.Default.GetBytes(str);
File.WriteAllBytes(@"C:\Users\SJD\Desktop\1.txt", buffer);
Console.WriteLine("写入成功");
Console.ReadKey();
File.WriteAllLines(@"C:\Users\SJD\Desktop\1.txt", new string[] { "今天天气好晴朗,处处好风光" });
Console.WriteLine("写入成功");
Console.ReadKey();
string str = "今天天气好晴朗,处处好风光";
File.WriteAllText(@"C:\Users\SJD\Desktop\1.txt", str);
Console.WriteLine("写入成功");
Console.ReadKey();
File.AppendAllText(@"C:\Users\SJD\Desktop\1.txt", "肯定没有覆盖");
Console.WriteLine("追加成功");
Console.ReadKey();
1.创建指定路径的文件夹
Directory.CreateDirectory(@"C:\Users\SJD\Desktop\新建文件夹");
Console.WriteLine("创建成功");
Console.ReadKey();
Directory.Delete(@"C:\Users\SJD\Desktop\新建文件夹",true);
Console.WriteLine("删除成功");
Console.ReadKey();
Directory.Move(@"C:\Users\SJD\Desktop\123", @"C:\Users\SJD\Desktop\456");
Console.WriteLine("OK");
Console.ReadKey();
string[] path = Directory.GetFiles(@"C:\Users\SJD\Desktop\456", "*.jpg");
for (int i = 0; i {
Console.WriteLine(path[i]);
}
Console.ReadKey();
两个大水缸,把一个缸中的水倒入另一个水缸。两种方式
.直接把一个缸中的水倒入另一个缸中。 file类
.用一个桶来把一个缸中的水舀到另一个缸中。 文件流
需要创建对象
StreamReader StreamWriter 操作字符的
垃圾回收器不会帮我们自动回收占用的资源,必须要手动的close和dispose
但代码一多总忘记加这两个,所以我们把它写在using里面,让他自动的帮助我们释放
using (FileStream fsRead=new FileStream(@"C:\Users\SJD\Desktop\123.txt",FileMode.OpenOrCreate,FileAccess.Read))
{
byte[] buffer = new byte[1024 * 1024 * 5];
//表示本次读取实际读取到的有效字节数
int r= fsRead.Read(buffer, 0, buffer.Length);
string s= Encoding.Default.GetString(buffer, 0, r);
Console.WriteLine(s);
}
Console.ReadKey();
using (FileStream fsWrite=new FileStream(@"C:\Users\SJD\Desktop\234.txt",FileMode.OpenOrCreate,FileAccess.Write))
{
string str = "今天天气好晴朗";
byte[] buffer = Encoding.Default.GetBytes(str);
fsWrite.Write(buffer, 0, buffer.Length);
Console.WriteLine("写入成功");
}
Console.ReadKey();
using (FileStream fsRead=new FileStream(@"C:\Users\SJD\Desktop\123.txt",FileMode.OpenOrCreate,FileAccess.Read))
{
using (StreamReader sr = new StreamReader(fsRead,Encoding.Default))
{
while(!sr.EndOfStream)
{
Console.WriteLine(sr.ReadLine());
}
}
}
Console.ReadKey();
byte[] buffer = new byte[1024 * 1024];
using (StreamWriter sw=new StreamWriter(@"C:\Users\SJD\Desktop\123.txt",true,Encoding.Default,buffer.Length))
{
sw.WriteLine("哈哈哈");
}
Console.WriteLine("OK");
Console.ReadKey();
要将序列化对象的类 标记为可以被序列化
[Serializable]
把对象序列化成二进制
using (FileStream fsWrite = new FileStream(@"C:\Users\SJD\Desktop\123.txt", FileMode.OpenOrCreate, FileAccess.Write))
{
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fsWrite, p);
}
Console.WriteLine("序列化成功");
Console.ReadKey();
Person p;
using (FileStream fsRead = new FileStrea
m(@"C:\Users\SJD\Desktop\123.txt", FileMode.OpenOrCreate, FileAccess.Read))
{
BinaryFormatter bf = new BinaryFormatter();
p = (Person)bf.Deserialize(fsRead);
}
Console.WriteLine(p.Name);
Console.WriteLine(p.Age);
Console.WriteLine(p.Gender);
Console.ReadKey();
下一篇:C#基础笔记(第二十天)