C#面向对象13 文件类操作 Path/File/FileStream
1.path
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace path { class Program { static void Main(string[] args) { //Path类专门用来处理路径的! string str = @"C:\tmuninst.ini"; //获取文件名 Console.WriteLine(Path.GetFileName(str)); //获取文件名,但不包括扩展名 Console.WriteLine(Path.GetFileNameWithoutExtension(str)); //获得文件扩展名 Console.WriteLine(Path.GetExtension(str)); //获得文件所在的文件夹的名称 Console.WriteLine(Path.GetDirectoryName(str)); //获取文件的全路径 Console.WriteLine(Path.GetFullPath(str)); //连接两个字符串作为路径 Console.WriteLine(Path.Combine(@"c:\b\","c.txt")); Console.ReadKey(); } } }
2.file类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace file { class Program { static void Main(string[] args) { //创建文件 //File.Create(@"C:\Users\alexx.zhang\Desktop\123456789.txt"); //删除 File.Delete(@"C:\Users\alexx.zhang\Desktop\123456789.txt"); //复制 //File.Copy(@"",@""); //判断文件是否存在 if(!File.Exists(@"C:\Users\alexx.zhang\Desktop\123456789.txt")) { File.Create(@"C:\Users\alexx.zhang\Desktop\123456789.txt"); Console.WriteLine("OK"); } else { Console.WriteLine("Exists"); } Console.ReadKey(); } } }
**ReadAllBytes/WriteAllBytes
//读 ReadAllBytes byte[] buffer= File.ReadAllBytes(@"C:\Users\alexx.zhang\Desktop\123456789.txt"); //将字节数组中的每个元素都要按照我们指定的编码格式解码成字符串 //UTF-8 GB2312K GBK Unicode string s = Encoding.GetEncoding("GBK").GetString(buffer); //string ss = Encoding.Default.GetString(buffer); Console.WriteLine(s); //写 WriteAllBytes string str = "凄凄切切"; byte[] buffer1 = Encoding.GetEncoding("GBK").GetBytes(str); File.WriteAllBytes(@"C:\Users\alexx.zhang\Desktop\123456789.txt",buffer1); Console.ReadKey();
**File.ReadAllLines
string [] array= File.ReadAllLines(@"C:\Users\alexx.zhang\Desktop\123456789.txt", Encoding.GetEncoding("GBK")); foreach (var item in array) { Console.WriteLine(item); }
**File.ReadAllText
string str= File.ReadAllText(@"C:\Users\alexx.zhang\Desktop\123456789.txt", Encoding.GetEncoding("GBK")); Console.WriteLine(str);
**File.WriteAllLines/File.WriteAllText
string [] strs={"123","234","345"}; File.WriteAllLines(@"C:\Users\alexx.zhang\Desktop\123456789.txt", strs); string str="1234567890"; File.WriteAllText(@"C:\Users\alexx.zhang\Desktop\1234567890.txt", str);
**File.AppendAllLines
**File.AppendAllText
**File.AppendText
****File类只能读取小文件!,因为它是一下子读取,占内存
3.编码
4.FileStream文件流
1)FileStream 操作字节的
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace FileStream { class Program { static void Main(string[] args) { //FileStream 操作字节的 //***读取数据 //构造函数:路径,针对文件的操作,针对文件的数据的操作 System.IO.FileStream fs = new System.IO.FileStream(@"C:\Users\alexx.zhang\Desktop\123.txt", FileMode.OpenOrCreate,FileAccess.Read); byte[] buffer = new byte[1024 * 1024 * 5]; //返回本次实际读取到的有效字节数 int i= fs.Read(buffer, 0, buffer.Length); //将字节数组中每个元素按照指定的编码格式编译成字符 string s = Encoding.Default.GetString(buffer,0,i); //关闭流 fs.Close(); //释放流所占用的资源 fs.Dispose(); Console.WriteLine(s); //***写入数据 using (System.IO.FileStream fss = new System.IO.FileStream(@"C:\Users\alexx.zhang\Desktop\123.txt", FileMode.OpenOrCreate, FileAccess.Write)) { string str = "898989898985222232255002..22256655"; byte[] buffers = Encoding.Default.GetBytes(str); fss.Write(buffers, 0, buffers.Length); } Console.ReadKey(); } } }
2)StreamReader,StreamWriter 操作字符的
You are never too old to set another goal or to dream a new dream!!!