C# IO操作(二)

本篇主要介绍一些常用的IO操作,对文件和目录的操作;留给自己复习之用。

1.创建文件
            string sPath1=Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            string sPath2="1.txt";
            string fullPath=Path.Combine(sPath1,sPath2);
            //创建或覆盖指定文件,这个重载将创建一个0字节的文件
            FileStream fsWrite= File.Create(fullPath);

	    //创建或打开文件,写入UTF8编码的文本
            StreamWriter sw = File.CreateText(fullPath);

            //创建或覆盖指定文件,这个重载需要提供读取或写入缓冲区中的字节数
            byte[] bteData=new byte[1024];
            FileStream fsWrite= File.Create(fullPath,bteData.Length);

            //创建或覆盖指定文件,这个重载需要提供FileOptions的枚举值
            byte[] bteData=new byte[1024];
            FileStream fsWrite= File.Create(fullPath,bteData.Length,FileOptions.None);

            //创建或覆盖指定文件,这个重载需要提供FileSecurity类型的实例(文件安全性的指定)
            byte[] bteData=new byte[1024];
            FileSecurity fsecurity = new FileSecurity("1.txt", AccessControlSections.Owner);
            FileStream fsWrite = File.Create(fullPath, bteData.Length, FileOptions.None, fsecurity);

            //创建或打开一个文件用于写入 UTF-8 编码的文本
            StreamWriter sw = File.CreateText(fullPath);

            //将指定文本插入文件中,如果文件不存在则创建
            File.WriteAllText(fullPath, "手动写入的一段文本,哈哈哈哈");

	    //将指定文本插入文件中,如果文件不存在则创建(这个重载指定写入编码)
            File.WriteAllText(fullPath, "手动写入的一段文本,哈哈哈哈",Encoding.Default);

            string[] str={"张三","李四","王五","赵六","田七"};
            ///将指定文本插入文件中,写入指定字符串数组,再关闭文件(如果文件中有内容,则会覆盖)
            File.WriteAllLines(fullPath, str);

	    //创建一个文件,写入指定字节数组,再关闭文件(如果文件中有内容,则会覆盖)
            string s = "手动写入的一段文本,哈哈哈哈";
            byte[] bte = Encoding.Default.GetBytes(s);
            File.WriteAllBytes(fullPath, bte);

	    File.AppendAllText()//将string追加到文件

2.读取文件
	    //打开一个文件,读取所有行,然后关闭
            string sContent = File.ReadAllText(fullPath);

	    //打开一个文件,读取所有行,然后关闭(这个重载指定读取编码)
            string sContent = File.ReadAllText(fullPath, Encoding.UTF8);

	    //打开一个文件,读取所有行,然后关闭(返回值为一个字符串数组)
            string[] str = File.ReadAllLines(fullPath);

	     //打开一个文件,读取所有行,然后关闭(这个重载指定读取编码,返回值为一个字符串数组)
            string[] str = File.ReadAllLines(fullPath,Encoding.Default);
            foreach (string item in str)
            {
                Console.WriteLine(item);
            }

            //打开一个文件,读取所有行,然后关闭(返回值为一个字节数组)
            byte[] bte = File.ReadAllBytes(fullPath);
            string s = Encoding.Default.GetString(bte);

	File.Copy(“source”, “targetFileName”, true);//文件拷贝,true表示当文件存在时“覆盖”,如果不加true,则文件存在报异常。
	File.Exists();//判断文件是否存在
	File.Move(“source”, “target”);//移动(剪切),文件重命名,文件的剪切是可以跨磁盘的。
	File.Delete(“path”);//删除。如果文件不存在?不存在,不报错

3.文件流
	FileStream fs=File.Open(); //返回FileStream
	FileStream fs=File.OpenRead();//返回只读的FileStream
	FileStream fs=File.OpenWrite();//返回只写的FileStream
	FileStream fs=new FileStream(参数);

4.目录操作
 1 //创建目录
 2         DirectoryInfo dInfo = Directory.CreateDirectory(@"D:\a\b");
 3         Console.WriteLine("文件夹{0}的创建时间是:{1}",dInfo.Name,dInfo.CreationTime);    //dInfo.CreationTimeUtc,返回目录创建时间的UTC时间.
 4         Directory.Move(@"D:\a\b", @"D:\1");     //将a下的b移入根目录,并重命名成1
 5         Directory.Delete(@"D:\a", true);        //删除目录,第二个参数设定为true,则表示删除其子目录
 6         Directory.Exists(fullPath);      //判断目录是否存在
 7         Directory.GetFiles(fullPath);        //检索指定目录下的子文件
 8         string[] strDir = Directory.GetDirectories(fullPath);  //检索指定目录下的子目录
 9         Directory.GetDirectoryRoot(fullPath);        //返回指定路径的根目录
10         Directory.GetParent(sPath1);                       //返回指定路径的父目录
11         string[] strDrives = Directory.GetLogicalDrives();      //检索计算机上逻辑驱动器的名称
12         DateTime LastTime = Directory.GetLastWriteTimeUtc(fullPath);   //返回上次写入指定目录或文件的日期和时间(UTC时间)
13         DateTime Time1 = Directory.GetLastWriteTime(sPath1);   //返回上次写入指定目录或文件的日期和时间
14         DateTime AccTime = Directory.GetLastAccessTime(sPath1);     //返回上次访问指定文件和目录的日期和时间
15         DateTime utcTime = Directory.GetLastAccessTimeUtc(sPath1);  //返回上次访问指定文件和目录的日期和时间(UTC时间)
16         string[] str = Directory.GetFileSystemEntries(@"D:\黑马5期", "*.avi", SearchOption.AllDirectories);    //获取指定路径中与搜索模式匹配的所有文件名称和目录名称的数组,还可以搜索子目录。
17         string s1 = Directory.GetCurrentDirectory();    //应用程序的当前工作目录
18         string s2 = Assembly.GetExecutingAssembly().Location;  //当前执行代码的程序集的路径(路径中包含执行程序集exe的名称)

需要注意的是,File.Delete(“path”)即便文件不存在也不会抛异常;Directory.Delete(@"D:\a", true);当目录不存在就会抛异常。

C# IO操作(二)

时间: 2024-09-30 15:35:38

C# IO操作(二)的相关文章

【UNIX环境高级编程】文件 IO 操作 - 基础函数 open close creat lseek write read 详解

博客地址 : http://blog.csdn.net/shulianghan/article/details/46980271 一. 文件打开关闭操作相关函数介绍 1. open 函数 (1) open 函数简介 open 函数解析 : -- 函数定义 : #include <fcntl.h> int open(const char *path, int oflag, ...); -- 函数作用 : 打开或者创建一个文件; -- 返回值 : 打开文件成功, 返回文件描述符; 如果失败, 返回

Java I/O流操作(二)---缓冲流[转]

转自:http://blog.csdn.net/johnny901114/article/details/8710403 一.BufferWriter类 IO的缓冲区的存在就是为了提高效率,把要操作的数据放进缓冲区,然后一次性把缓冲区的内容写到目的地,而不是写一次就往目的地写一次. 在这里要注意的是当我们关闭了缓冲区对象实际也关闭了与缓冲区关联的流对象. BufferWriter类 try { FileWriter fw =new FileWriter("test.txt"); //使

python之协程与IO操作

协程 协程,又称微线程,纤程.英文名Coroutine. 协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua)中得到广泛应用. 子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B,B在执行过程中又调用了C,C执行完毕返回,B执行完毕返回,最后是A执行完毕. 所以子程序调用是通过栈实现的,一个线程就是执行一个子程序. 子程序调用总是一个入口,一次返回,调用顺序是明确的.而协程的调用和子程序不同. 协程看上去也是子程序,但执行过程中,在子程序内部可中断,然后转而执行别的子程序,

java的IO操作:字节流与字符流操作

流的概念 程序中的输入输出都是以流形式,流中保存的实际上都是字节文件. 字节流与字符流 字节流的操作: 1)输入:inputStream, 2)输出:outPutStream; 字符流的操作: 1)输入主要使用:write类. 2)输出主要使用:reader类. 内容操作就四个类. 操作流程: 使用File类操作一定有路径问题,注意分隔符: 实际上四个操作类都是抽象类(区别接口,抽象类的成员都是抽象,并且只能单继承,接口可以有全局变量,但是接口可以多继承) IO操作属于资源操作,对于资源操作,操

Java IO操作——字节流(OutputStream、InputStream)和字符流(Writer、Reader)

学习目标 掌握流的概念 掌握字节流与字符流的作用 掌握文件的标准操作步骤 掌握字节与字符操作的区别 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序中需要数据的时候就用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输出都是以流的形式保存的,流中保存的实际上全部是字节文件. 字节流与字符流 在java.io包中操作文件内容的主要有两大类:字节流和字符流,两类都分为输入和输出操作.在字节流中输出数据主要是使用OutputStream完成,输入

重叠io操作

第一章 一. 重叠模型的优点 1. 可以运行在支持Winsock2的所有Windows平台 ,而不像完成端口只是支持NT系统. 2. 比起阻塞.select.WSAAsyncSelect以及WSAEventSelect等模型,重叠I/O(Overlapped I/O)模型使应用程序能达到更佳的系统性能. 因为它和这4种模型不同的是,使用重叠模型的应用程序通知缓冲区收发系统直接使用数据,也就是说,如果应用程序投递了一个10KB大小的缓冲区来接收数据,且数据已经到达套接字,则该数据将直接被拷贝到投递

Java之IO操作总结

所谓IO,也就是Input与Output的缩写.在java中,IO涉及的范围比较大,这里主要讨论针对文件内容的读写 其他知识点将放置后续章节 对于文件内容的操作主要分为两大类 分别是: 字符流 字节流 其中,字符流有两个抽象类:Writer Reader 其对应子类FileWriter和FileReader可实现文件的读写操作 BufferedWriter和BufferedReader能够提供缓冲区功能,用以提高效率 同样,字节流也有两个抽象类:InputStream OutputStream

c# IO操作

今天我们主要讨论的IO的一些操作,首先我们先引入三个变量: /// <summary> /// 配置绝对路径 /// </summary> private static string LogPath = ConfigurationManager.AppSettings["LogPath"]; private static string LogMovePath = ConfigurationManager.AppSettings["LogMovePath

IO操作与IO模型

目录 一 .IO操作本质 二. IO模型 BIO – 阻塞模式I/O NIO – 非阻塞模式I/O IO Multiplexing - I/O多路复用模型 AIO – 异步I/O模型 三.同步I/O与异步I/O 四. IO设计模式 Reactor模式 Proactor模式 对比分析 一 .IO操作本质 数据复制的过程中不会消耗CPU # 1 内存分为内核缓冲区和用户缓冲区 # 2 用户的应用程序不能直接操作内核缓冲区,需要将数据从内核拷贝到用户才能使用 # 3 而IO操作.网络请求加载到内存的数