C# Path操作路径文件、File处理文件、读写文件:byte[];string[];string; string与byte[]转换,File.AppendAllText()

来源:互联网 发布:mac git好用的客户端 编辑:程序博客网 时间:2024/06/06 13:07

将字符串以怎样的形式存储在二进制------编码

File 和Path 都在命名空间 using System.IO;


1、 专门操作路径 Path
           string str = @"E:\language\C#\C#learn\first.wav";  :假设我们知道文件的路径,需要提取文件名称,目前有两种方式:通过字符串操作和利用Path处理

     利用字符串的方法提取文件名            // 假如要找到最后的文件名  first.wav            int index = str.LastIndexOf("\\");// 找到最后出现'\'的位置            string st = str.Substring(index + 1);  // 提取‘\’后面的字符            Console.WriteLine(st);        // 输出

2、利用Path处理路径文件

 
string str=@"E:\language\c#\34\video\lesson1.avi";string fileName=Path.GetFileName(str); // 很方便的获得文件名 ,str中存放的是文件的路径string fileNameWOEPath.GetFileNameWithoutExtension(str); //获得文件名,不包括扩展名string fileExtension=Path.GetExtension (str); //获得文件扩展名string fileFullPath=Path.GetFullPath(str); //获得文件路径string fileFileName=Path.GetDirectoryName (str); //获得文件夹名string fileCombine=Path.Combine (@"f\lan\c\",@"ccc#"); //组成新的路径名

string str = @"E:\language\C#\video\1.avi";            string path = Path.ChangeExtension(str,".jpg");//修改文件的后缀,只是字符串层面的操作,文件类型实质没有改变。            string path1 = Path.Combine(@"E:\language\C#\video","pic.jpg");//相对于‘+’,来说,不需要考虑\的问题

3 文件File

       File.Create(@"D:\vtang\桌面\a.txt"); // 创建一个文件           File.Delete(@"D:\vtang\桌面\a.txt");  // 删除一个文件       File.Copy(@"D:\vtang\桌面\a.txt",@"D:\vtang\桌面\new.txt");  // 赋值copy一个文件       File.Move(@"D:\vtang\桌面\new.txt", @"D:\vtang\桌面\new.txt");  // 将一个文件从一个地方移动到另一个地方
4 文件的读写

读:

    1、     byte[ ] by = File.ReadAllBytes(@"D:\vitang\桌面\a.txt");  // 以字节形式输出 ,输出字节数组            //需要将字节数组中的每个元素按照指定的编码形式编码成字符串            string s = Encoding.GetEncoding("GB2312").GetString(by);      //编码,ANSI格式,default,两种格式都可以            string s1 = Encoding.Default.GetString(by);                   // 保存的格式跟打开的格式不一致时,出现乱码    2、     string[ ] str=File.ReadAllLines(@"D:\vitang\桌面\a.txt",Encoding.Default); //以string形式输出  用来操作每行数据;其他两种方式都不可以    3、     File.ReadAllText(@"D:\viang\桌面\a.txt",Encode.GetEndcoding("GB2312"));            string[ ] str = File.ReadAllLines(@"D:\vitang\桌面\a.txt",Encoding.Default );            string str=File.ReadAllText(@"D:\vitang\桌面\a.txt",Encoding.Default );
写:(这些写的方式都会把文件中原来的数据覆盖,可以用追加AppendAllText())

            string  strn="将这个以字节形式写入文件中,先将string转换为byte[]";            byte[] byy=Encoding.Default.GetBytes(strn);            File.WriteAllBytes(@"d:\vitang\桌面\a.txt",byy);// 文件不存在则创建,存在则覆盖            string[]  strn={"将这个以字节形式写入文件中,先将string转换为byte[]","h"};            byte[] reby = File.ReadAllBytes(@"d:\vitang\桌面\a.txt");            string restr= Encoding.Default.GetString(reby);            File.WriteAllLines(@"d:\vitang\桌面\a.txt", strn,Encoding.Default);            File.WriteAllLines(@"d:\vitang\桌面\a.txt", strn,Encoding.Default);

读写文件的总结:

总共有三个方法读写文件

1、byte[]---byte:  ReadAllBytes()、WriteAllBytes()

 byte[] by = File.ReadAllBytes(@"D:\vitang\桌面\a.txt"); // 把文件中的内容读入到byte[ ]数组中,再转换为string string s1 = Encoding.Default.GetString(by);     string与byte[ ]转换 string s1 = Encoding.GetEncoding("GB2312").GetString(by);      //编码,ANSI格式,default,两种格式都可以 byte[] byy=Encoding.Default.GetBytes(strn); File.WriteAllBytes(@"d:\viang\桌面\a.txt",byy);// 将string数组先转为byte[]数组,再存入文件中
2、string--lines: ReadAllLines()、WriteAllLine()

string[] str=File.ReadAllLines(@"D:\vitang\桌面\a.txt",Encoding.Default); //以string[ ] 形式输出string []   strn={"heool ","hao","号店"};File.WriteAllLines(@"d:\vitang\桌面\a.txt", strn,Encoding.Default );    // 将string[ ]数组存到文件中,指定编码格式
3、string---Text: ReadAllText()、WriteAllText()

string str=  File.ReadAllText(@"D:\viang\桌面\a.txt",Encode.GetEndcoding("GB2312"));string str2="hello world";File.WriteAllText(@"d:\vitang\桌面\a.txt", str2,Encoding.Default );

总结:
string[]:File.ReadAllLines()和string:File.ReadAllText()的读写都是文本文件,File只适合读小文件,大的文件需要文件流FileStream()读取。

byte[ ]转换为string

string s1 = Encoding.Default.GetString(by); //string与byte[]转换string s1 = Encoding.GetEncoding("GB2312").GetString(by); //编码,ANSI格式,default,两种格式都可以

            void AppendAllText(string Path,string contents);//将文本contents的内容附加到文件path中            bool Exists(string path);//判断文件path是否存在            string[] ReadAllLines(string path);//读取文本文件到字符串数组中            string ReadAllText(string path);//读取文本文件到字符串中            void WriteAllText(string Path,string contents);//将文本contents的内容保存W到文件path中,会覆盖旧内容            WriteAllLines(string Path,string[] contents);//将字符串数组一行一行保存到文件path中,会覆盖旧内容


原创粉丝点击