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()方法例子:

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

Write()方法例子:

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

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

         /// <summary>
/// 复制一个多媒体文件并存放到指定位置
/// </summary>
/// <param name="source">要复制多媒体文件的路径</param>
/// <param name="target">复制后的多媒体文件存放的路径</param>
public static void CopyFile(string source, string target)
{
//创建一个负责读取的流
using (FileStream fsRead = new FileStream(source, FileMode.OpenOrCreate, FileAccess.Read))
{
//创建一个负责写入的流
using (FileStream fsWrite = new FileStream(target, FileMode.OpenOrCreate, FileAccess.Write))
{
byte[] buffer = new byte[ * * ];
while (true)
{
//读取的字节数
int r = fsRead.Read(buffer, , buffer.Length);
if (r == ) { break; }
fsWrite.Write(buffer, , r);
}
}
}
}

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

             string str = @"D:\file.txt";
using (StreamReader sr = new StreamReader(str, Encoding.Default))
{
while (!sr.EndOfStream)
{
Console.WriteLine(sr.ReadLine());
}
}

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

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

             string str = @"D:\file.txt";
using (StreamWriter sw = new StreamWriter(str, true, Encoding.Default))
{
sw.WriteLine();
sw.Write("测试!");
sw.WriteLine();
sw.Write("");
}

C# 一些知识点总结(二)_路径类,编码类,文件类...的更多相关文章

  1. java_文件类

    例一:创建文件 package java文件类; import java.io.File; import java.io.IOException; public class aasd { public ...

  2. JavaWeb-RESTful(二)_使用SpringMVC开发RESTful_上

    JavaWeb-RESTful(一)_RESTful初认识 传送门 JavaWeb-RESTful(二)_使用SpringMVC开发RESTful_上 传送门 JavaWeb-RESTful(三)_使 ...

  3. C#_02.12_基础二_.NET类型存储和变量

    C#_02.12_基础二_.NET类型存储和变量 一.核心一句:C#程序是一组类型声明(留待后面慢慢体会,现在不是很理解,不强说了) 二.数据类型: 1.预定义了16种数据类型: 其中13种简单数据类 ...

  4. Spring知识点小结(二)

    一.配置非自定义的Bean(数据源DataSource模型) DBCP数据源:        导入dbcp的jar包:dbcp+pool+connector                代码实现:  ...

  5. C# 一些知识点总结(一)_继承,多态,集合,关键字...

    内存中的三大存储区域:栈.堆.静态存储区域 new 关键字:new帮助我们做了三件事:1)在内存中开辟一块空间(开辟内存空间)2) 在开辟的空间中创建对象3)调用对象的构造函数进行初始化对象所以构造函 ...

  6. Android RecyclerView单击、长按事件:基于OnItemTouchListener +GestureDetector标准实现(二),封装抽取成通用工具类

     Android RecyclerView单击.长按事件:基于OnItemTouchListener +GestureDetector标准实现(二),封装抽取成通用工具类 我写的附录文章2,介绍了 ...

  7. C++ vector 实现二维数组时, 在类的头文件中定义时遇到"应输入类型符"的问题?

    见下,当我在类的声明文件中定义二维vector时,提示我应输入类型说明符; 但是相同的格式定义,在类中将二维vector修改为在源文件中定义就可以顺利通过,并顺利执行打印 打印结果如下: 望大神来解惑 ...

  8. C#的百度地图开发(二)转换JSON数据为相应的类

    原文:C#的百度地图开发(二)转换JSON数据为相应的类 在<C#的百度地图开发(一)发起HTTP请求>一文中我们向百度提供的API的URL发起请求,并得到了返回的结果,结果是一串JSON ...

  9. springMVC学习总结(二)路径映射和请求方法限定

    springMVC学习总结(二)路径映射和请求方法限定 一.路径映射 无参数的访问路径 对springmvc项目的访问路径,是由根路径和子路径组成:在注解式开发中,根路径标注在类名之上,子路径标注在方 ...

随机推荐

  1. mybatis实战教程(mybatis in action)之二:以接口的方式编程

    前面一章,已经搭建好了eclipse,mybatis,mysql的环境,并且实现了一个简单的查询.请注意,这种方式是用SqlSession实例来直接执行已映射的SQL语句:session.select ...

  2. day26:面向对象进阶:set、get、del反射和内置

    三 __setattr__,__delattr__,__getattr__ __开头的都是内置的,不定义系统都会有.如果自己定义的话,就会覆盖系统内置的,执行自定义的部分(是否有完成设置的语法,有的话 ...

  3. Angular中的jsonp

    1.一般我们使用Angualr中的jsonp值这样使用的:注入$http服务 这样使用jsonp的方式可以支持多数api,但是douban不支持无法使用 module.controller('InTh ...

  4. [译]How to Setup Sync Gateway on Ubuntu如何在ubuntu上安装sync-gateway

    参考文章https://hidekiitakura.com/2015/03/21/how-to-setup-sync-gateway-on-ubuntudigitalocean/ 在此对作者表示感谢 ...

  5. git reset revert 回退回滚取消提交返回上一版本

    git reset revert 回退回滚取消提交返回上一版本 总有一天你会遇到下面的问题. (1)改完代码匆忙提交,上线发现有问题,怎么办? 赶紧回滚. (2)改完代码测试也没有问题,但是上线发现你 ...

  6. Windows消息机制详解

    消息是指什么?      消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉.一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向 Windows发出一个通知,告诉应用 ...

  7. POJ 2528 Mayor's posters(线段树+离散化)

    Mayor's posters 转载自:http://blog.csdn.net/winddreams/article/details/38443761 [题目链接]Mayor's posters [ ...

  8. RMQ训练题 codevs 1291 火车线路 已经搞定

    就是线段树维护区间的最小值 但是要注意 本题坑人的地方 是   a到b站  实际上是维护a到b-1  因为b站已经下车了 我勒个去呀 #include<iostream> #include ...

  9. css不常用重要属性

    超出省略号:display:block;white-space:norwrap;overflow:hidden;text-overflow:ellipsis; white-space:norwrap/ ...

  10. delphi 串口 关于RS485总线通信协议开发注意事项

    http://blog.csdn.net/shjhuang/article/details/9426739 关于RS485总线通信协议开发注意事项 1       前言 近段时间发现我们系统在进行设备 ...