本文所分享的知识点是【C#中的文件流StreamReader、StreamWriter和File类等操作学习】,欢迎您喜欢52ij所分享的新闻、攻略、电脑教程及手机知识等经验,下面是详细的讲解。
C#中的文件流StreamReader、StreamWriter和File类等操作学习
这篇主要介绍几个操作文件流的类,读写类StreamReader,StreamWriter和File类以及Directory类的操作
FileStream类的控制
(1) Flush(); 清除此流的缓冲区,是为了保护硬盘
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | static void Main(string[] args) { using (FileStream filewrite=new FileStream("file.txt", FileMode.Create, FileAccess.Write)) { filewrite.WriteByte(101); filewrite.WriteByte(101); //清除此流的缓冲区 filewrite.Flush(); filewrite.WriteByte(101); filewrite.WriteByte(101); //每次写一个直接就会频繁的操作硬盘, } } |
(2)Seek(偏移,位置枚举)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | static void Main(string[] args) { using (FileStream fileRead=new FileStream("file.txt", FileMode.Open, FileAccess.Read)) { fileRead.Position=4; fileRead.Seek(3, SeekOrigin.Current); int n=fileRead.ReadByte(); Console.WriteLine((char)n); } |
其它流
(1)MemoryStream 内存流
NetworkStream ns=new NetworkStream();
(2)NetworkStream 网络流
MemoryStream ms=new MemoryStream();
读写流
(1) StreamReader
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | //读取文件流 static void Main(string[] args) { using(FileStream fileRead=new FileStream("成功.txt",FileMode.Open,FileAccess.Read)) { using (StreamReader sr=new StreamReader(fileRead,Encoding.Default)) { //第一种读法 //string str=sr.ReadLine(); //while ((str=sr.ReadLine()) !=null) //{ // Console.WriteLine(str); //} //第二种读法 Console.WriteLine(sr.ReadToEnd()); } } } |
(2)StreamWriter
static void Main(string[] args)
{
using (StreamWriter sw=new StreamWriter("成功.txt"))
{
sw.WriteLine();
}
}
File
(1) File关于文件读取的方法
1)使用File文件读取流
//损失性能
byte[] bs=File.ReadAllBytes("file.txt");
2)管理文件
->创建文件
File.Create("f:\\韩迎龙.txt", 10 * 1024 * 1024);
->删除文件
File.Delete("f:\\韩迎龙.txt");
->查文件
bool isExist=File.Exists("f:\\韩迎龙.txt");
Console.WriteLine(isExist);
(2)FileInfo
1)创建文件
FileInfo file=new FileInfo("f:\\韩迎龙.txt"); //在内存中存在
file.Create(); //创建文件
2)设置属性
file.Attributes=FileAttributes.ReadOnly; //在属性中查看
(3)Copy方法 复制
File.Copy("f:\\韩迎龙.txt", "f:\\111.txt");
(4)Move方法 移动
File.Move("f:\\韩迎龙.txt", "f:\\1\\韩迎龙.txt");
(5)修改文件的全部名称
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | static void Main(string[] args) { string[] fnames=Directory.GetFiles("f:\\1"); //Array的Sort方法可以对数组进行排序 Array.Sort(fnames); for (int i=0; i < fnames.Length; i++) { string temp=fnames[i]; //获得文件名 string fileName=Path.GetFileName(temp); //获得路径名 string path=Path.GetDirectoryName(temp); //新的文件名 string newPath=Path.Combine(path, i.ToString(new string('0', fnames.Length.ToString().Length)) + ".txt"); File.Move(fnames[i], newPath); } } |

Directory
(1) 增
//创建文件夹
Directory.CreateDirectory("F:\\2.exe");
(2)删
Directory.Delete("f:\\1", true); //直接删除,在回收站中再找不到了
(3)和File的使用基本一样
(4)得到文件夹下面的子文件夹
string[] subDir=Directory.GetDirectories("文件夹路径");
(5)得到文件夹下面的所有子文件
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | string[] file=Directory.GetFiles("文件夹路径"); //先创建几个文件 string type="mp3|mp4|doc|rmvb|txt|xls|exe|avi"; string path=@"F:\file"; if(!Directory.Exists(path)) { Directory.Create(path); } Random rand=new Random(); string[] ts=type.Split('|'); for (int i=0; i < 100; i++) { File.Create(Path.Combine(path, Path.ChangeExtension(i.ToString(), ts[rand.Next(ts.Length)]))); } string[] files=Directory.GetFiles(@"F:\file", "*.txt"); |
关于C#中的文件流StreamReader、StreamWriter和File类等操作学习的相关讨论如下:
相关问题:C#中,关于流的几个疑惑,谢谢!
答:首先来说一下楼主的一个误区 所谓的“流”,指的是Stream,也就是所谓的一个文件区。这个文件区中存储着的信息可以是在内存中,也可以是在硬盘中。流中的数据均以byte型数组去存储。 BufferedStream不是有缓冲区,而是本身就是缓冲区,可以用它来... >>详细
相关问题:C#中怎么将输入的信息保存到TXT文件中,下才开启时...
答:不过如果保存配置文件一样信息,建议你用XML 读取 using System; using System.Collections.Generic; using System.Text; using System.IO; StreamReader sr = new StreamReader("TestFile.txt")///StreamReader sr = new StreamReader("TestFil... >>详细
相关问题:streamreade命令r 需要使用哪个 using命名空间
答:StreamReader是文件流对象,需要导入System.IO命名空间 在读写文件的过程中,Filestream只可以进行以字节为单位原始数据流进行读写操作,为此,C#中提供了功能更加强大的StreamReader/ StreamWriter来支持文件的读写. StreamReader/ StreamWriter可... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
