博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 一些知识点总结(二)_路径类,编码类,文件类...
阅读量:5109 次
发布时间:2019-06-13

本文共 3763 字,大约阅读时间需要 12 分钟。

Path 类:路径类

path.GetFileName("文件路径")//获取完整文件名,包括文件名和文件拓展名
Path.GetFileNameWithoutExtension("文件路径")//获取文件名,不包括拓展名
Path.GetExtension("文件路径")//获取文件名的拓展名

Path.GetDirectoryName("文件路径")//返回指定文件路径的字符串信息,即文件所在的文件夹的路径名称

Path.GetFullPath("文件路径")//获得文件所在的文件夹的全路径,包括文件夹名和完整文件名
Path.Combine("文件路径")//合并路径

File 类:文件类。用于操作文件,可进行一次性读写文件。

.Create("文件路径")//创建一个文件
.Delete("文件路径")//删除一个文件(永久删除,文件不存在也不发异常)
File.ReadAllBytes("打开文件路径")//打开一个路径下的文件,将文件的内容读入一个字符串,然后关闭该文件,返回一个字节数组
File.WriteAllBytes("新建文件路径",字节数组)//创建一个新文件,在其中写入指定的字节数组,然后关闭该文件。如果目标文件已存在,则覆盖该文件。

Encoding 类:字符编码类

Encoding.Default//获取系统当前SNSI代码页的编码
Encoding.Default.GetString()//将指定字节数组中的所有字节解码为一个字符串,返回一个字符串
Encoding.Default.GetBytes()//将指定字符串中的所有字符编码为一个字节数组,返回一个字节数组

FileStream 类:文件流类。

.Read()//从流中读取字节块并将该数据写入给定缓冲区中。返回一个int值,表示读入缓冲区中的总字节数,为0表示已到达流的末尾,读取完毕。
.Write()//使用从缓冲区读取的数据将字节块写入该流。没有返回值。
.Close()//
.Dispose()//
Read()方法例子:

1             string path = @"D:\file.txt"; 2             FileStream fsRead = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read); 3             byte[] buffer = new byte[1024 * 1024 * 5];//5mb的大小 4             //返回本次实际读取的有效字节数 5             int r = fsRead.Read(buffer, 0, buffer.Length); 6             //将字节数组中每个元素按指定的编码格式解码成字符串 7             string str = Encoding.Default.GetString(buffer, 0, r); 8             //关闭流 9             fsRead.Close();10             //释放流所占用资源11             fsRead.Dispose();12             Console.WriteLine(str);
View Code

Write()方法例子:

1             string str = @"D:\file.txt";2             using (FileStream fsWrite = new FileStream(str, FileMode.OpenOrCreate, FileAccess.Write))3             {4                 string newstr = "写入的内容!";5                 byte[] buffer = Encoding.Default.GetBytes(newstr);6                 fsWrite.Write(buffer, 0, buffer.Length);7             }
View Code

复制一个多媒体文件并存放到指定位置

1         ///  2         /// 复制一个多媒体文件并存放到指定位置 3         ///  4         /// 要复制多媒体文件的路径 5         /// 复制后的多媒体文件存放的路径 6         public static void CopyFile(string source, string target) 7         { 8             //创建一个负责读取的流 9             using (FileStream fsRead = new FileStream(source, FileMode.OpenOrCreate, FileAccess.Read))10             {11                 //创建一个负责写入的流12                 using (FileStream fsWrite = new FileStream(target, FileMode.OpenOrCreate, FileAccess.Write))13                 {14                     byte[] buffer = new byte[1024 * 1024 * 5];15                     while (true)16                     {17                         //读取的字节数18                         int r = fsRead.Read(buffer, 0, buffer.Length);19                         if (r == 0) { break; }20                         fsWrite.Write(buffer, 0, r);21                     }22                 }23             }24         }
View Code

StreamReader 类:从流中读取字符

.ReadLine()//从当前流中读取一行字符并将数据作为字符串返回。
.EndOfStream//获取一个值,该值表示当前的流位置是否在流的末尾。
例子:

1             string str = @"D:\file.txt";2             using (StreamReader sr = new StreamReader(str, Encoding.Default))3             {4                 while (!sr.EndOfStream)5                 {6                     Console.WriteLine(sr.ReadLine());7                 }8             }
View Code

StreamWrite 类:以特定的编码向流中写入字符

常用构造函数: public StreamWriter(string path, bool append, Encoding encoding);//使用指定编码和默认缓冲区大小,为指定路径上的指定文件初始化 System.IO.StreamWriter 类的新实例。如果该文件存在,则可以将其覆盖或向其追加。如果该文件不存在,则此构造函数将创建一个新文件。

.Write()//将字符串写入流。

.WriteLine()//将行结束符写入文本流。
例子:

1             string str = @"D:\file.txt";2             using (StreamWriter sw = new StreamWriter(str, true, Encoding.Default))3             {4                 sw.WriteLine();5                 sw.Write("测试!");6                 sw.WriteLine();7                 sw.Write("123456");8             }
View Code

转载于:https://www.cnblogs.com/xifengyeluo/p/5965667.html

你可能感兴趣的文章
EntityFrameWork 实现实体类和DBContext分离在不同类库
查看>>
新手算法学习之路----二叉树(在一个二叉查找树中插入一个节点)
查看>>
autopep8
查看>>
GIT在Linux上的安装和使用简介
查看>>
基于C#编程语言的Mysql常用操作
查看>>
s3c2440实验---定时器
查看>>
MyEclipse10安装SVN插件
查看>>
[转]: 视图和表的区别和联系
查看>>
Regular Experssion
查看>>
图论例题1——NOIP2015信息传递
查看>>
uCOS-II中的任务切换-图解多种任务调度时机与问题
查看>>
CocoaPods的安装和使用那些事(Xcode 7.2,iOS 9.2,Swift)
查看>>
Android 官方新手指导教程
查看>>
幸运转盘v1.0 【附视频】我的Android原创处女作,请支持!
查看>>
UseIIS
查看>>
集合体系
查看>>
vi命令提示:Terminal too wide
查看>>
引用 移植Linux到s3c2410上
查看>>
人与人之间的差距是从大学开始的
查看>>
MySQL5.7开多实例指导
查看>>