• C# 一些知识点总结(二)_路径类,编码类,文件类...


    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         /// <summary>
     2         /// 复制一个多媒体文件并存放到指定位置
     3         /// </summary>
     4         /// <param name="source">要复制多媒体文件的路径</param>
     5         /// <param name="target">复制后的多媒体文件存放的路径</param>
     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
  • 相关阅读:
    原创 | 我被面试官给虐懵了,竟然是因为我不懂Spring中的@Configuration
    vavr:让你像写Scala一样写Java
    Java黑科技之源:JVMTI完全解读
    JVM 源码解读之 CMS 何时会进行 Full GC
    MySQL 如何优化大分页查询?
    025:为什么需要将Logger对象声明为private static final类型的
    酷家乐一面二面
    趋势科技面试
    生活就是好好经历,无问西东----三月份总结
    30号快手笔试(三道ac两道半)————-历史上最大的网络失误orz
  • 原文地址:https://www.cnblogs.com/xifengyeluo/p/5965667.html
Copyright © 2020-2023  润新知