List泛型集合
跟ArrayList的方法使用很像,不过类型固定。
List<int> list=new List<int>();
//List泛型集合可以转换为数组,转换成什么样的数组,取决于list的类型。
int[] nums=list.ToArray();
装箱和拆箱
装箱:就是将值类型转换为引用类型。
拆箱:将引用类型转换为值类型。
看两种类型是否发生了装箱或者拆箱,要看,这两种类型是否存在继承关系。但尽量不要出现装箱和拆箱。
Path
主要用于操作文件路径
string str =@"C:\3000soft\Red Spider\Data\Message\老赵.jpg";
//获取文件名
Console.WriteLine(Path.GetFileName(str));
//获得文件名但是不包含扩展名
Console.writeLine(Path.GetFileNameWithoutExtentsion(str));
//获得文件所在文件夹的名称
Console.WriteLine(Path.GetDirectoryName(str));
File
//创建一个文件
File.Create(@"C:\Users\SpringRain\Destop\new.txt");
//删除一个文件
File.Delete(@"C:\Users\SpringRain\Destop\new.txt");
//复制一个文件
File.Copy(@"C:\Users\SpringRain\Destop\code.txt",@"C:\Users\SpringRain\Destop\new.txt");
FileStream
操作字节,相较于File相当于舀水和直接搬起水池。
//读取数据
//创建对象,传递三个参数,文件路径,对文件进行的操作,对文件内容进行的操作。
FileStream fsRead=new FileStream(@"C:\Users\SpringRain\Destop\new.txt",FileMode.OpenOrCreate,FileAccess.Read);
//限定5M的字节数组
byte[] buffer=new byte[1024*1024*5];
//返回本次实际读取到的有效字节数
int r=fsRead.Read(buffer,0,buffer.Length);
//将字节数组中每一个元素按照指定的编码格式解码成字符串,Default可以换成UTF8等
string s=Encoding.Default.GetString(buffer,0,r);
//关闭流
fsRead.Close();
//释放流所占用的资源
//fsRead.Dispose();
将创建文件流对象的过程卸载using中,会自动帮助释放流所占用的资源。
//写入数据,写入已有的文件时,不会覆盖已有文件数据
using(FileStream fsWrite=new FileStream(@"C:\Users\SpringRain\Destop\new.txt",FileMode.OpenOrCreate,FileAccess.Write))
{
string str="看我把你覆盖掉";
byte[] buffer=Encoding.Default.GetBytes(str);
fsWrite.Write(buffer,0,buffer.Length);
}
StreamReader和StreamWrite
操作字符
//读取一个文本文件
using(StreamReader sr=new StreamReader(@"C:\Users\灵\Desktop\记录.txt",Encoding.Default))
{
while(!sr.EndOfStream)
{
Console.WriteLine(sr.ReadLine());
}
}
//写入已有文件,会覆盖已有文件数据。
using(StreamWriter sw=new StreamWriter(@"C:\Users\灵\Desktop\now.txt"))
{
sw.Write("今天天气好晴朗");
}
编码
是指将字符串以怎么样的形式保存为二进制。
产生乱码的愿意:就是你保存这个文件所采用的的编码,跟你打开这个文件所采用的编码格式不一样。