C#基础笔记(第二十一天)

C#基础笔记(第二十一天)

大家好,又见面了,我是全栈君。

1.FIle类、Path类、Directory类复习
操作文件的
File 操作文件,静态类,对文件整体操作。拷贝、删除、剪切等。
Directory 操作目录(文件夹),静态类。
Path 对文件或目录的路径进行操作(很方便)[字符串]
Strean 文件流,抽象类。

Path 操作文件路径
File 操作文件
复制、剪切、创建、移除
//File.Create(@”C:\Users\SJD\Desktop\new.txt”);
//Console.WriteLine(“创建成功”);
//Console.ReadKey();

//File.Delete(@”C:\Users\SJD\Desktop\new.txt”);
//Console.WriteLine(“删除成功”);
//Console.ReadKey();

//File.Move(@”C:\Users\SJD\Desktop\new.txt”, @”C:\Users\SJD\Desktop\1.txt”);
//Console.WriteLine(“剪切成功”);
//Console.ReadKey();

使用File类来读取数据(读取小文件,因为是一次性读取,大文件用文件流来读取)

File的三个读取的方法

1. 以字节数组的形式读取
byte[] buffer = File.ReadAllBytes(@”C:\Users\SJD\Desktop\123.txt”);
string str = Encoding.Default.GetString(buffer, 0, buffer.Length);
Console.WriteLine(str);
Console.ReadKey();

2.以字符串数组的形式读取,用在操作每行数据上
string[]str= File.ReadAllLines(@”C:\Users\SJD\Desktop\123.txt”,Encoding.Default);
for (int i = 0; i < str.Length; i++)
{

Console.WriteLine(str[i]);
}
Console.ReadKey();

3.以字符串的形式读取,只用于看一下,不做任何操作
string str = File.ReadAllText(@”C:\Users\SJD\Desktop\123.txt”, Encoding.Default);
Console.WriteLine(str);
Console.ReadKey();

File的三个写入的方法

1. 以字节数组的形式写入,会覆盖原来的内容
string str = “今天天气好晴朗,处处好风光”;
byte[] buffer = Encoding.Default.GetBytes(str);
File.WriteAllBytes(@”C:\Users\SJD\Desktop\1.txt”, buffer);
Console.WriteLine(“写入成功”);
Console.ReadKey();

2.以字符串数组的形式写入一行一行
File.WriteAllLines(@”C:\Users\SJD\Desktop\1.txt”, new string[] { “今天天气好晴朗,处处好风光” });
Console.WriteLine(“写入成功”);
Console.ReadKey();

3.以字符串的形式直接写入
string str = “今天天气好晴朗,处处好风光”;
File.WriteAllText(@”C:\Users\SJD\Desktop\1.txt”, str);
Console.WriteLine(“写入成功”);
Console.ReadKey();

4.追加不覆盖,前面加上Append,有AppendAllLines和AppendAllText两种
File.AppendAllText(@”C:\Users\SJD\Desktop\1.txt”, “肯定没有覆盖”);
Console.WriteLine(“追加成功”);
Console.ReadKey();

Directory类
1.创建指定路径的文件夹
Directory.CreateDirectory(@”C:\Users\SJD\Desktop\新建文件夹”);
Console.WriteLine(“创建成功”);
Console.ReadKey();

2.删除指定路径的文件夹,文件夹目录不是空的就不能删,非要删除,后面加个true
Directory.Delete(@”C:\Users\SJD\Desktop\新建文件夹”,true);
Console.WriteLine(“删除成功”);
Console.ReadKey();

3.没有copy这个方法,但有move(剪切)
Directory.Move(@”C:\Users\SJD\Desktop\123″, @”C:\Users\SJD\Desktop\456″);
Console.WriteLine(“OK”);
Console.ReadKey();

4.Directory.GetFiles 获取你指定的文件夹下文件的全路径,后面加上*.格式,可以只读取选择的格式文件路径
string[] path = Directory.GetFiles(@”C:\Users\SJD\Desktop\456″, “*.jpg”);
for (int i = 0; i < path.Length; i++)
{

Console.WriteLine(path[i]);
}
Console.ReadKey();

2、文件流
两个大水缸,把一个缸中的水倒入另一个水缸。两种方式
.直接把一个缸中的水倒入另一个缸中。 file类
.用一个桶来把一个缸中的水舀到另一个缸中。 文件流
需要创建对象

FileStream 操作字节的
StreamReader StreamWriter 操作字符的
垃圾回收器不会帮我们自动回收占用的资源,必须要手动的close和dispose
但代码一多总忘记加这两个,所以我们把它写在using里面,让他自动的帮助我们释放

FileStream fsRead 读
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();

FileStream fsWrite 追加写入
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();

StreamReader
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();

StreamWriter
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();

3、序列化
要将序列化对象的类 标记为可以被序列化
[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();

4、窗体应用程序

转载于:https://www.cnblogs.com/VSMinos/p/7873492.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107918.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2021.5.2 pycharm 激活码破解方法[通俗易懂]

    2021.5.2 pycharm 激活码破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    51
  • 阻止中文输入时触发input事件

    阻止中文输入时触发input事件做限制输入框可输入最大的长度和实时匹配输入框数据时遇到了坑——当中文输入时input事件也会被触发,即假设限制的是2个字符,你要输入社会人的“社(she)”,就会直接被截取,输入框填充文本sh。或者是在中文输入法时也会一直去调接口,匹配数据,影响了页面的性能!代码如下:$(document).on(‘input’,’input’,function(){console.log(‘限制…

    2022年5月24日
    33
  • css文本左右对齐_css垂直居中对齐

    css文本左右对齐_css垂直居中对齐css两端对齐怎么设置,css中文本的对齐有哪些内容导读:除了css两端对齐,本文还介绍了主要的css中文本的对齐有哪些。可以看到,常见的文本对齐方式是靠左、居中以及靠右,相对来说css两端对齐用得还是比较少的,只在某些特殊情况下使用。总之这些css代码很简单,大家应该能够很快学会。在设计页面的时候会涉及到文本对齐的问题,默认情况下是靠左对齐的,但有些时候也乤靠右对齐。本文给大家介绍下css两端对…

    2022年10月24日
    0
  • 卷积神经网络全过程

    卷积神经网络全过程作为计算机视觉中最重要的部分卷积神经网络,从输入到输出做一个全方面的梳理。卷积神经网络一般包含:卷积层池化层全连接层卷积层计算机视觉中为什么要使用卷积操作:假设我们输入的图像大小为64*64的RGB小图片,数据量就是64*64*3,计算得到数据量大小为12288。如果输入为1000*1000的RGB图片,那么数据量将是300万(3m表示300万),也就是我们要输入的特征向量xxx的维度高达300万。如果在第一隐藏层中有1000个神经单元,该层的权值矩阵为W

    2022年6月20日
    25
  • 【Java 8 新特性】Java LocalDate 转 Date

    【Java 8 新特性】Java LocalDate 转 DateJavaLocalDate转Date1.使用LocalDate.atTime2.使用LocalDate.atStartOfDay3.使用LocalDateTime.of4.使用Timestamp.valueOf完整示例参考文献在这一页,我们将提供如何将java.time.LocalDate转换成java.util.Date。LocalDate表示一个格式为yyyy-MM-dd的日期,如2019-05-08。我们可以使用以下方法和构造函数来创建一个Date对象。1.Date.f

    2022年10月4日
    0
  • 数据库的存储过程_数据库的存储过程语句

    数据库的存储过程_数据库的存储过程语句一、存储过程与函数的区别:1.一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。2.对于存储过程来说可以返回参数(output),而函数只能返回值或者表对象。3.存储过程一

    2022年8月5日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号