C#学习第十天 文件操作、文件流
2015-05-04 14:47
323 查看
一、Path类
Path类是静态类,在命名空间IO中,专门用来处理路径一类的;Path能实现的功能,字符串也能实现,只是Path提供方便简洁的方法:
二、File类:
File类也是静态类,用来处理文件,编辑读写等
优点:方便快捷; 缺陷:只能读写小文件
1、读文件:
1)ReadAllBytes:当文件不是文本形式,而是音乐、视频等文件时,需要使用此方法
2)ReadAllLines:需要单独操作每一行时选用
2、写文件:与读文件对应
1)WriteAllBytes:
3)WriteAllText
以上三种方法,如果该路径没有这个文件,则新建并写入,如果有这个文件,则覆盖原数据
3.追加文件:
1)AppendAllText
2)AppendText
3.文件的路径: 绝对路径和相对路径
绝对路径:文件的精确路径
相对路径:文件相对于应用程序的路径
比较: 在程序开发中,应该尽量使用相对路径
三、文件流:FileStream ---最重要的文件操作类,因为可以处理大文件,可以处理字节(可以处理所有文件)
FileStream相对于File来说,方法更多更全面,适合大文件操作(几百k以上),可以控制读取和写入的量,不会太耗费内存
FileStream(String, FileMode, FileAccess):
1. 读取数据
第一步创建对象:
FileStream fsRead = new FileStream(@"C:\Users\tufeiax\Desktop\123.txt",
FileMode.OpenOrCreate,FileAccess.Read);第二步设置每次读写大小:
byte[] buffer = new byte[1024 * 10245 * 5];//每次读取5M (耗费内存的大小)第三部操作数据:
读取
int r = fsRead.Read(buffer,0,buffer.Length); //返回本次实际读取到的有效字节数
第二个参数是开始读取文件的位置,第三个参数是读取长度
解码
//将字节数组中每一个元素按照指定的编码格式解码成字符串形式
string s = Encoding.Default.GetString(buffer,0,r);//第二个参数是解码位置,第三个解码个数
第四步、关闭流,释放资源
fsRead.Close(); //关闭文件流
fsRead.Dispose(); //释放流所占的资源
自动释放资源方法:
将创建文件流对象的过程写在using当中,会自动的帮助我们释放流所占用的资源
2、写入数据:
using(FileStream fsWrite = new FileStream(@"C:\Users\tufeiax\Desktop\123.txt",
FileMode.OpenOrCreate,FileAccess.Write))
{
string str = "看我有没有把你覆盖掉";
byte[] buffer = Encoding.Default.GetBytes(str);//转成字节数组
fsWrite.Write(buffer,0,buffer.Length);
}
Console.WriteLine("写入成功");
四、StreamReader / StreamWriter
//使用StreamReader来读取一个文本文件
using(StreamReader sr = new StreamReader(@"C:\Users\tufeiax\Desktop\123.txt",Encoding.Default))
{
while(!sr.EndOfStream) //判断是否读到文件末尾
Console.WriteLine(sr.ReadLine()); //读取一行文本,sr。ReadLine()直接返回字符串
}
Path类是静态类,在命名空间IO中,专门用来处理路径一类的;Path能实现的功能,字符串也能实现,只是Path提供方便简洁的方法:
Console.WriteLine(Path.GetFileName(str)); //快速获得文件名 Console.WriteLine(Path.GetFileNameWithoutExtension(str)); //快速获得不包括后缀的文件名 Console.WriteLine(Path.GetExtension(str)); //快速获得文件名 Console.WriteLine(Path.GetDirectoryName(str)); //快速获得文件所在的文件夹 Console.WriteLine(Path.GetFullPath(str)); //快速获得文件所在的全路径 Console.WriteLine(Path.Combine(@"D:\360Downloads\HotFix\","一路有你.wav")); //将两个字符串组合成路径
二、File类:
File类也是静态类,用来处理文件,编辑读写等
优点:方便快捷; 缺陷:只能读写小文件
File.Create(@"C:\Users\tufeiax\Desktop\new.txt"); Console.WriteLine("创建成功"); 删除一个文件(彻底删除,不会到回收站) File.Delete(@"C:\Users\tufeiax\Desktop\new.txt"); Console.WriteLine("删除成功"); //复制一个文件 File.Copy(@"C:\Users\tufeiax\Desktop\new.txt",@"C:\Users\tufeiax\Desktop\123.txt"); Console.WriteLine("复制成功");
1、读文件:
1)ReadAllBytes:当文件不是文本形式,而是音乐、视频等文件时,需要使用此方法
//读取文件,转成字节数组,返回字节数组 byte[] buffer = File.ReadAllBytes(@"F:\学习\C#\视频\传智播客视频学习\3.2014年 .Net基础\下载必看.txt"); //将字节数组中的每一个元素按照我们指定的编码格式解码成字符串.UTF-8 GB2312 GBK ASCII string s = Encoding.Default.GetString(buffer);
2)ReadAllLines:需要单独操作每一行时选用
string[] str = File.ReadAllLines(@"C:\Users\tufeiax\Desktop\new.txt", Encoding.Default); foreach(string item in str) Console.WriteLine(item);3)ReadAllText:读取所有文本中所有数据时选用
string str = File.ReadAllText(@"C:\Users\tufeiax\Desktop\new.txt", Encoding.Default); Console.WriteLine(str);
2、写文件:与读文件对应
1)WriteAllBytes:
//写文件,如果没有此方法会创建,如有则覆盖 string str = "人生得意须尽欢"; //写之前需将字符串转换成字节数组 byte[] b = Encoding.Default.GetBytes(str); File.WriteAllBytes(@"C:\Users\tufeiax\Desktop\new.txt",b);2)WriteAllLines
3)WriteAllText
以上三种方法,如果该路径没有这个文件,则新建并写入,如果有这个文件,则覆盖原数据
3.追加文件:
1)AppendAllText
2)AppendText
3.文件的路径: 绝对路径和相对路径
绝对路径:文件的精确路径
相对路径:文件相对于应用程序的路径
比较: 在程序开发中,应该尽量使用相对路径
三、文件流:FileStream ---最重要的文件操作类,因为可以处理大文件,可以处理字节(可以处理所有文件)
FileStream相对于File来说,方法更多更全面,适合大文件操作(几百k以上),可以控制读取和写入的量,不会太耗费内存
FileStream(String, FileMode, FileAccess):
1. 读取数据
第一步创建对象:
FileStream fsRead = new FileStream(@"C:\Users\tufeiax\Desktop\123.txt",
FileMode.OpenOrCreate,FileAccess.Read);第二步设置每次读写大小:
byte[] buffer = new byte[1024 * 10245 * 5];//每次读取5M (耗费内存的大小)第三部操作数据:
读取
int r = fsRead.Read(buffer,0,buffer.Length); //返回本次实际读取到的有效字节数
第二个参数是开始读取文件的位置,第三个参数是读取长度
解码
//将字节数组中每一个元素按照指定的编码格式解码成字符串形式
string s = Encoding.Default.GetString(buffer,0,r);//第二个参数是解码位置,第三个解码个数
第四步、关闭流,释放资源
fsRead.Close(); //关闭文件流
fsRead.Dispose(); //释放流所占的资源
自动释放资源方法:
将创建文件流对象的过程写在using当中,会自动的帮助我们释放流所占用的资源
2、写入数据:
using(FileStream fsWrite = new FileStream(@"C:\Users\tufeiax\Desktop\123.txt",
FileMode.OpenOrCreate,FileAccess.Write))
{
string str = "看我有没有把你覆盖掉";
byte[] buffer = Encoding.Default.GetBytes(str);//转成字节数组
fsWrite.Write(buffer,0,buffer.Length);
}
Console.WriteLine("写入成功");
四、StreamReader / StreamWriter
//使用StreamReader来读取一个文本文件
using(StreamReader sr = new StreamReader(@"C:\Users\tufeiax\Desktop\123.txt",Encoding.Default))
{
while(!sr.EndOfStream) //判断是否读到文件末尾
Console.WriteLine(sr.ReadLine()); //读取一行文本,sr。ReadLine()直接返回字符串
}
//使用treamWriter来写入一个文本文件 using(StreamWriter sw = new StreamWriter(@"C:\Users\tufeiax\Desktop\xxx.txt",true)) { sw.Write("人生如梦!"); } Console.WriteLine("写入成功");
相关文章推荐
- C#源码学习之---事件驱动异步文件操作
- xml学习(三)---利用xml文件实现数据岛功能(网页显示xml文件中的内容免C#代码操作xml文件)
- c#学习之基础篇(Windows应用程序 文件操作)
- C#学习笔记21——文件、目录、注册表操作
- C# 文件流操作 之 删除、复制、转移多个文件
- C#学习——文件和数据流操作
- (C#)学习笔记1:文件和注册表操作
- C# 文件流操作 之 删除、复制、转移多个文件
- C#学习6,文件操作相关学习
- 黑马程序员-C#学习-文件操作
- C#学习之文件操作(1)
- c#文件操作的学习
- C#基础学习之【1】文件操作
- C#学习笔记 文件操作
- C#基础精华04(文件流,文件操作,File、Directory、Path,Directory)
- C#基础精华04(文件流,文件操作,File、Directory、Path,Directory)
- C#学习笔记之操作配置文件
- c#学习笔记之文件操作
- c#之文件操作(学习笔记)
- C#学习与上位机开发之文件操作(EXCEL保存案例)