1:绝对路径和相对路径

绝对路径:通过给定的路径直接能在我的电脑中找到这个文件。

相对路径:文件相对于应用程序的路径。

2:编码格式

乱码:产生乱码的原因,就是你保存这个文件所采用的编码,跟你打开这个文件所采用的编码格式不一样。(GB2312:简体中文; GBK:简体中文+繁体中文)

UTF:Universal TransFormation Format

目前计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information Interchange,美国标准信息交换码),

它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。

Unicode码扩展自ASCII字元集。在严格的ASCII中,每个字元用7位元表示,或者电脑上普遍使用的每字元有8位元宽;而Unicode使用全16位元字元集。

这使得Unicode能够表示世界上所有的书写语言中可能用於电脑通讯的字元、象形文字和其他符号。

Unicode最初打算作为ASCII的补充,可能的话,最终将代替它。考虑到ASCII是电脑中最具支配地位的标准,所以这的确是一个很高的目标。

UTF-8是UNICODE的一种变长字符编码又称万国码,由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码UNICODE字符。

用在网页上可以同一页面显示中文简体繁体及其它语言(如日文,韩文)

3:File类

using System.IO; 静态类

File类只能用来读取小文件(读取的内容放在内存中)。

File.Create(path); //创建文件对象

File.Delete(path); //删除一个文件

File.Copy(oldPath,newPath); //复制一个文件

File.Exist(path); //path文件是否存在

4:FileStream类: 操作字节的(可以是任何文件)

using System.IO; 继承于Stream

4.1:FileStream创建

创建FileStream对象,将创建文件流对象的过程写在using当中,会自动的帮助我们释放流所占用的资源。

流处理记得using或Close

4.1.1:FileStream Read 流处理使用Close

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

FileStream Read(小文件读取)

4.1.2:FileStream Read 流处理使用using

 using (FileStream fssRead = new FileStream(@"C:\Users\admin\Desktop\aaa.txt", FileMode.OpenOrCreate, FileAccess.Read))
{
byte[] bufferr = new byte[ * * ];
//返回本次实际读取到的有效字节数
int rr = fssRead.Read(bufferr, , bufferr.Length);
//将字节数组中每一个元素按照指定的编码格式解码成字符串
string ss = Encoding.Default.GetString(bufferr, , rr); Console.WriteLine(ss);
Console.ReadKey();
}

FileStream Read(小文件读取)

4.1.3:FileStream Write 流处理使用using

 using (FileStream fsWrite = new FileStream(@"C:\Users\admin\Desktop\aaa.txt", FileMode.OpenOrCreate, FileAccess.Write))
{
string str = "准备覆盖了。。。。";
byte[] buffer = Encoding.Default.GetBytes(str);
fsWrite.Write(buffer, , buffer.Length);
}
Console.WriteLine("OK");
Console.ReadKey();

FileStream Write(小文件读取)

4.1.4:FileStream,使用文件流实现多媒体文件(大文件)的读取

     class Program
{
static void Main(string[] args)
{
string sourcePath = @"C:\Users\admin\Desktop\SourceFile.avi";
string targetPath = @"C:\Users\admin\Desktop\CopyFile.avi";
CopyFile(sourcePath, targetPath);
Console.WriteLine("CopyFile Success");
Console.ReadKey();
} static void CopyFile(string sourcePath, string targetPath)
{
using (FileStream fsRead = new FileStream(sourcePath, FileMode.OpenOrCreate, FileAccess.Read))
{
using (FileStream fsWrite = new FileStream(targetPath, FileMode.OpenOrCreate, FileAccess.Write))
{
//可能文件比较大,需要循环读取
while (true)
{
Byte[] buffer = new byte[ * * ];
int r = fsRead.Read(buffer, , buffer.Length); if (r == )
{
break;
}
fsWrite.Write(buffer, , r);
}
}
}
}
}

FileStream Read/Write(大文件读取)

5:StreamReader / StreamWriter类:操作字符的(只能是文本文件)

using System.IO; 继承于TextReader/TextWriter

5.1:StreamReader Read txtFile

 using (StreamReader srRead = new StreamReader(@"C:\Users\admin\Desktop\aaa.txt", Encoding.Default))
{
while (!srRead.EndOfStream)
{
Console.Write(srRead.ReadLine());
}
}

StreamReader Read txtFile

5.2:StreamWriter Write txtFile

 using (StreamWriter swWrite = new StreamWriter(@"C:\Users\admin\Desktop\aaa.txt", false, Encoding.Default))
{
swWrite.WriteLine("今天天气好晴朗。。。。。");
}
Console.WriteLine("OK");
Console.ReadKey();

StreamWriter Write txtFile

其它流NetworkStream / MemoryStream 

6:Path类

using System.IO; 静态类

Path.GetFileName(); //获得文件的名字(包含扩展名)

Path.GetFileNameWithoutExtension();获得文件的名字(没有扩展名)

Path.GetExtension(); //获得文件的扩展名

Path.GetDirectoryName();//获得文件所在的文件夹的名称

Path.GetFullPath();//获得文件所在的全路径

Path.Combine();//合并字符串作为路径

7:Directory类

using System.IO; 静态类

Directory.GetFiles(path); //返回指定目录中的文件的名称

Directory.CreateDirectory(path); //目录创建方法

Directory.Delete(path); //目录删除方法

Directory.Move(string sourceDirName, string destDirName); //目录移动方法

Directory.GetDirectories(path); //获取当前目录下的所有子目录方法

Directory.Exist(path); //判断目录是否存在方法

最新文章

  1. js对象的深度克隆
  2. Selenium2Library系列 keywords 之 _SelectElementKeywords 之 select_from_list(self, locator, *items)
  3. APIO2014 爆零总结
  4. MyBatis(3.2.3) - Paginated ResultSets using RowBounds
  5. poj2182
  6. windows下php开发环境的搭建
  7. OrchardNoCMS
  8. ThinkPHP中foreach和volist的区别
  9. 论JavaScript的作用域
  10. 在Pycharm中自动添加时间日期作者等信息
  11. (五)Knockout template模版渲染
  12. java的AES对称加密和解密,有偏移量
  13. 基于jmeter的性能测试平台(二) 一个构想
  14. 跟面试官聊.NET垃圾收集,直刺面试官G点
  15. ditto复制增强
  16. WebAppInitializer类,代替web.xml
  17. 三: 爬虫之selenium模块
  18. Jquery 临时
  19. LIST OF NOSQL DATABASES [currently 150]
  20. 04_Java基础语法_第4天(数组)_讲义

热门文章

  1. python学习第一天-语法学习
  2. OSG学习:移动/缩放/旋转模型
  3. 异常--try..catch
  4. 关于已部署的WCF服务升级的问题
  5. 查询MySQL某字段相同值得重复数据
  6. 【转】Jsp自定义标签详解
  7. ismember matlab
  8. 威锋网(Weiphone) BBS排序插件
  9. BZOJ4784 ZJOI2017仙人掌(树形dp+dfs树)
  10. WPF 进度条ProgressBar