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         }
时间: 2024-12-24 13:51:13

C#语言进阶——2.C# 的 I/O 操作的相关文章

苹果新的编程语言 Swift 语言进阶(十四)--扩展

Swift语言的扩展是为一个已经存在的类.结构.枚举类型添加新功能的一种方式,包括为不能存取源代码的那些已经存在的类型添加功能.        扩展类似于Objective-C语言中的类别,与类别不同的是Swift语言的扩展没有名字.        扩展能够为已存在类型:     1)增加计算属性和计算静态属性:     2)定义新的实例方法和类型方法:     3)提... 请转移到此位置继续阅读,谢谢! 苹果新的编程语言 Swift 语言进阶(十四)--扩展 苹果新的编程语言 Swift 语

苹果新的编程语言 Swift 语言进阶(八)--属性

请转移到此位置阅读,谢谢! 苹果新的编程语言 Swift 语言进阶(八)--属性 http://blog.csdn.net/goohong/article/details/32096289 苹果新的编程语言 Swift 语言进阶(八)--属性,布布扣,bubuko.com

苹果新的编程语言 Swift 语言进阶(十五)--协议

协议定义了适合某个特定任务或功能需要的方法.属性和其它需求的一个蓝图.协议本身不提供这些需求的实现,它只是描述了一个任务或功能实现的蓝图.       协议与java 语言中的接口定义类似,都是描述了一个实现可以干什么,而本身却不包含任何实现.与接口不同的是swift语言定义的协议可以被一个类.结构.或者枚举采用,来提供协议规定需求的实际实现,而java 语言的接口只能被类实现.   ... 请麻烦转移到此位置阅读,谢谢! 苹果新的编程语言 Swift 语言进阶(十五)--协议 苹果新的编程语言

苹果新的编程语言 Swift 语言进阶(十一)--实例的初始化与类的析构

一 .实例的初始化          实例的初始化是准备一个类.结构或枚举的实例以便使用的过程.初始化包括设置一个实例的每一个存储属性为一个初始值,以及执行任何其它新的实例能够使用之前需要的设置或初始化. 一个类.结构或枚举能定义一个初始化方法来设置它的特性,用来确保它的实例的所有属性都有有效的初始值. 通过调用类.结构或枚举提供的初始化方法来执行实例的初始化过程. 类的实例也能实现一个析构,用来在类的实例释放之前执行任何特定的清除过程来释放分配的专有资源. 1 . 初始化方法的定义 初始化方法

苹果新的编程语言 Swift 语言进阶(七)--枚举、结构、类

一. 枚举 枚举定义了一种包含一组相关值的公共类型.枚举是Swift中的一种与类类似的类型,具有许多传统类才有的特征,例如计算属性.实例方法,能够通过扩展或协议增强功能等. 1.1 枚举定义 Swift 语言的枚举类型的定义语法如下: enum CompassPoint { case North case South case East case West } 枚举语法以一个关键字enum来标识,enum后面包含一个枚举类型名字,枚举定义全部放到一对大括号中. 在枚举中定义的值称为枚举成员值,用

苹果新的编程语言 Swift 语言进阶(三)--基本运算和扩展运算

一 基本操作运算 1. 赋值操作 在Swift 中,可以使用赋值操作为一个常量或一个变量赋值,也可以使用多元组一次为多个常量或变量赋值. Swift 的赋值操作与其它语言最大的不同是赋值操作除了能够为变量或常量赋值外本身不能够返回值. 这个特征可以避免某些条件下赋值操作错误地用于相等比较操作. 如在C语言中,if (x = =y) 很容易误写作if (x = y) ,虽然逻辑结果不正确,但C语言的编译器却无法检查出这种情况,而Swift 语言却可以有效避免这种情况发生,因为 在Swift 中if

苹果新的编程语言 Swift 语言进阶(一)--综述

Swift 是苹果开发和提供的供开发IOS 和OS X应用的一门新的语言.Swift语言基于C 和Objective-C语言,除了提供C 和Objective-C语言具有的所有语法功能外,为了编程方便和高效,Swift在语法上作了大量的优化和改进. Swift采用安全编程模式,具有许多先进的强大的功能 ,如动态运行时.编译动态进行类型检查.Closures.下标功能.自动引用计数.选项类型.通用类型和类型编译时推断.类型的扩展和嵌套.协议类型.功能和类型的通用化.操作符的定制和添加. Swift

苹果新的编程语言 Swift 语言进阶(四)--字符串和收集类型

一.字符串( String  )和字符类型(Character) 字符串是一种字符的带次序的收集类型(相当于数组),字符是字符串中的元素. 在Swift 语言中,字符串是编码独立的Unicode字符的组合,并提供相应方法来获取以各种Unicode呈现方式包含的字符. 1. 字符串定义和初始化 Swift 语言使用var或let关键字来定义一个常量字符串(不可修改)或变量字符串(可以修改).  而不是像Object C语言一样定义两种不同的类型. Swift 语言允许使用一个双引号的字符串来初始化

苹果新的编程语言 Swift 语言进阶(十六)--泛化

泛化允许你定义一个宽松.可重用的函数或者类型,使用泛化能够避免代码的重复,也能以更清楚和抽象的方式来表达程序的意图. 泛化是Swift语言提供的强大功能之一,Swift提供的许多标准库都使用了泛化来创建,如Swift提供的数组和词典类型.通过使用泛化,你能使用一个数组和词典来包含和存储任何类型的元素. 1.1 泛化函数 使用Swift语言你能定义一个可以工作于任意类型的泛化函数,从而不必为每种类型都定义一个具有相同功能的函数,这样就可以大大减少代码的重复. 如对一个实现任意类型值交换(swap)