C#语言进阶——2.C# 的 I/O 操作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#语言进阶——2.C# 的 I/O 操作相关的知识,希望对你有一定的参考价值。
1.C# 的获取文件详情
1 static void Main(string[] args) 2 { 3 //检查一个文件是否存在 不区分大小写 4 Console.WriteLine(File.Exists(@"C:\HelloIo\Io.txt")); //File,Directory 静态类 5 //检查一个文件夹是否存在的 6 Console.WriteLine(Directory.Exists(@"c:\")); 7 //小例子 获取一个路径下面为exe 可以执行文件的详情 8 string path = ".";//默认获取当前路径 9 if (args.Length > 0) 10 { 11 if (Directory.Exists(args[0]))//只检查第一个参数 12 { 13 path = args[0]; 14 } 15 else 16 { 17 Console.WriteLine("{0} 这个路径没有找到", args[0]); 18 } 19 20 } 21 //对文件进行操作, DirectoryInfo和FileInfo 可以实例化 22 DirectoryInfo dir = new DirectoryInfo(path); 23 foreach (FileInfo f in dir.GetFiles(".exe")) 24 { 25 string name = f.Name;// 获取文件的名字 26 long size = f.Length;//获取文件的大小 27 DateTime creationTime = f.CreationTime;//获取文件的创建时间 28 Console.WriteLine("{0,12:NO} {1,-20:g}{2}", size, creationTime, name); 29 30 } 31 32 Console.ReadKey(); 33 }
2.C# 写入文件操作
2.1新增
1 static void Main(string[] args) 2 { 3 if (File.Exists(FILE_NAME)) 4 { 5 Console.WriteLine("{0} 文件已经存在", FILE_NAME); 6 Console.ReadKey(); 7 return; 8 } 9 else 10 { 11 //如果不存在创建文件 12 FileStream fs = new FileStream(FILE_NAME, FileMode.Create);//文件流 13 BinaryWriter w = new BinaryWriter(fs);//字节写入 14 for (int i = 0; i < 11; i++) 15 { 16 w.Write("a"); 17 } 18 //关闭 19 w.Close(); 20 fs.Close(); 21 } 22 }
2.2编辑
1 private const string FILE_NAME = "Test.txt"; //文件名 2 static void Main(string[] args) 3 { 4 //StreamWriter w 声明实例化后会被销毁,系统资源得到很好的释放 5 // 一般用于比较消耗资源的操作 如IO的读写 或者数据库连接 6 using (StreamWriter w = File.AppendText(FILE_NAME)) 7 { 8 log("hehe", w); 9 log("Hello IO",w); 10 w.Close(); 11 } 12 } 13 14 /// <summary> 15 /// 编辑文件 16 /// </summary> 17 /// <param name="logMessage">内容</param> 18 /// <param name="w">文件名</param> 19 public static void log(string logMessage,TextWriter w) 20 { 21 w.Write("\r\nlog Entry:");//回车下一行 22 w.WriteLine(" :{0}", logMessage); 23 w.Flush(); 24 } 25 26 }
3.C# 读取文件操作
方式一
1 private const string FILE_NAME = "Test.txt"; //文件名 2 static void Main(string[] args) 3 { 4 if(!File.Exists(FILE_NAME)) 5 { 6 Console.WriteLine("{0} 文件不存在", FILE_NAME); 7 Console.ReadKey(); 8 return; 9 } 10 else 11 { 12 //文件名 打开方式 应用的权限 13 FileStream fs = new FileStream(FILE_NAME, FileMode.Open, FileAccess.Read); 14 BinaryReader r = new BinaryReader(fs); 15 for (int i = 0; i < 11; i++) 16 { 17 Console.WriteLine(r.ReadString()); 18 } 19 r.Close(); 20 fs.Close(); 21 Console.ReadKey(); 22 } 23 }
方式二
1 private const string FILE_NAME = "Test.txt"; //文件名 2 static void Main(string[] args) 3 { 4 if(!File.Exists(FILE_NAME)) 5 { 6 Console.WriteLine("{0} 文件不存在", FILE_NAME); 7 Console.ReadKey(); 8 return; 9 } 10 else 11 { 12 using (StreamReader sr =File.OpenText(FILE_NAME)) 13 { 14 string input; 15 //如果读取哪行不是为空的话就继续读取下去 16 while ((input = sr.ReadLine())!=null) 17 { 18 Console.WriteLine(input); 19 } 20 Console.WriteLine("文件读取完毕"); 21 sr.Close(); 22 } 23 Console.ReadKey(); 24 } 25 }
以上是关于C#语言进阶——2.C# 的 I/O 操作的主要内容,如果未能解决你的问题,请参考以下文章
我的C语言学习进阶之旅解决 Visual Studio 2019 报错:错误 C4996 ‘fscanf‘: This function or variable may be unsafe.(代码片段
我的C语言学习进阶之旅解决 Visual Studio 2019 报错:错误 C4996 ‘fscanf‘: This function or variable may be unsafe.(代码片段