C#学习第十天 文件操作、文件流
来源:互联网 发布:如何登录淘宝账户 编辑:程序博客网 时间:2024/05/25 08:15
一、Path类
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.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 ASCIIstring 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来读取一个文本文件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("写入成功");
0 0
- C#学习第十天 文件操作、文件流
- C# 文件操作学习
- C语言学习第十七天(文件操作)
- C#学习笔记:文件操作
- c#文件操作的学习
- C#学习笔记 文件操作
- C#学习笔记:文件操作
- C#文件流操作
- C#文件流操作
- C#文件流操作
- C#学习6,文件操作相关学习
- C/C++日常学习总结(第十篇)string的实现&文件流操作
- 黑马程序员-C#学习-文件操作
- C#学习之文件操作(1)
- C#基础学习之【1】文件操作
- c#学习笔记之文件操作
- c#学习笔记之文件操作
- C#高级学习第七章-文件操作
- asp.net mvc 网站发布后IIS配置问题小结
- 运行jsp文件出现nomethod异常
- HealthKit开发教程之HealthKit的主要类型数据
- read/write/connect自由函数
- eclipse sequoyah - 本地化字符串编辑插件,可以很方便的检查和编辑字符串翻译情况
- C#学习第十天 文件操作、文件流
- JSP页面Ajax发送请求与乱码解决
- 获取滚动条位置documentElement.scrollTop和body.scrollTo
- JVM的内存区域划分(*****)
- 解读Android 4.0 Camera原生应用程序的设计思路
- 常用公共函数收集
- hdu2795 Billboard 线段树模拟
- 中小企业网站建设方案
- 好的学习网站