c#之文件操作(学习笔记)
File类和Directory类
FileInfo类
需要提供一个文件路径来创建一个FileInfo类实例对象,FileInfo提供很多类似File的方法,在选择使用File还是FileInfo时应遵循下面的规则:
1、如果要对某个文件只进行一次复制操作,则可以使用File的静态方法,因为不必创建对象再调用方法,所以会快一些。
2、如果对某个文件进行很多次操作(如:复制、移动、重命名等),那么使用FileInfo会快一些,因为对象在开始就确定了某个文件,不像File一样每次都要去寻找文件
FileInfo、File、Directory通用属性
DirectoryInfo类
类似于FileInfo类。DirectoryInfo类的属性与FileInfo类一样,只是这些属性用于目录
DirectoryInfo类的专用属性
使用FileStream对象读取和写入
一:创建对象
FileStream表示在磁盘上指向文件的流,该类操作的是字节或字节数组,该类可以从指定位置开始读取
Stream类操作的字符数据,比起FileStream来更易于使用
创建FileStream对象的方式多种多样,
1、通过构造函数可以创建
FileStream中FileMode的属性:
2、File和FileInfo都提供了OpenRead()和OpenWrite()方法,更易于创建FileStream对象
二:文件指针
使用seek方法可以从文件的任何地方读取文件,当处理大型文件时非常省时
三:读取数据
使用FileStream类读取数据不像使用StreamReader类读取数据那样容易。因为FileStream类只能处理原始字节,所以不嗯呢该直接读入字符串,而StreamReader可以直接读入字符串,但是FileStream可以用于读取任何数据文件。
FileStream.Read(byte[] array,int index,int count);
第一个参数:用于接收FileStream对象数据的数组
第二个参数:字节数组中开始写入数据的位置
第三个参数:指定从文件中读取多少个字节
四:将字节数组转换为字符串:
Encoding.UTF8.GetDecoder().GetChars方法,参数不做介绍了F12可以查看到
写入数据
跟读入数据很类似
StreamWriter对象
StreamWriter类允许将字符串写入到文件中,向FileStream对象写入数据
一:创建StreamWriter对象
方法一:
FileStream fileStream = new FileStream(@"log.txt",FileMode.CreateNew);
StreamWriter sw= new StreamWriter(fileStream);
方法二:
StreamWriter sw = new StreamWriter("log.txt",true); // 第二个参数规定是否追加文件,false如果文件存在则改写该文件,否则创建一个新文件,true:如果文件存在,保留文件内容并向后追加,否则创建一个新文件,
示例:
StreamReader对象
用于从外部数据源中读取数据,使用方法同StreamWriter
示例:
使用ReadLine()读取文本,这个方法读取回车符之前的文本,当达到文本末尾时返回null。
StreamReader有多个读取文本的方法,
Read()
此方法将字符作为正整数值返回,如果达到了流的结尾处,返回-1.上面的实例中可以这样编写:
对于小文件,可以用ReadToEnd
c#之文件操作(学习笔记)的更多相关文章
- MySQL4.0命令操作学习笔记
声明:下列内容并非原创,仅仅是最近学习笔记整理. -------------------------------------- 进入mysql安装路径bin目录下: 1.开启服务 winmysqlad ...
- python的文件处理学习笔记
python的文件处理函数是open() 以下主要是关于这个函数的一些学习笔记 1.文件处理离不开编码 要注意的是文件打开时的编码和文件保存时的编码的统一,这样才能保证你打开的文件不会存在乱码 总结: ...
- C# IO流与文件读写学习笔记
本笔记摘抄自:https://www.cnblogs.com/liyangLife/p/4797583.html,记录一下学习过程以备后续查用. 一.文件系统 1.1文件系统类的介绍 文件操作类大都在 ...
- Linux文件操作学习总结【转载】
本文转载自: http://blog.csdn.net/xiaoweibeibei/article/details/6556951 文件类型:普通文件(文本文件,二进制文件).目录文件.链接文件.设备 ...
- Linux用户、用户组、文件权限学习笔记
最近打算更仔细学习一下linux操作系统.先是恶补了一下用户.用户组.文件权限这三样比较重要的知识.学习这几样东西,得先掌握linux的权限系统相关知识.linux的权限系统主要是由用户.用户组和权限 ...
- Git操作学习笔记
根据廖雪峰老师git教程学习整理 这里需要辨析一下概念.Github是代码托管平台,是协作的工具;而Git是版本控制工具.Git不需要联网,在本机就可以使用 集中式版本控制系统与分布式版本控制系统 S ...
- 侠说java8--Stream流操作学习笔记,都在这里了
前言 首次接触到Stream的时候以为它是和InputStream.OutputStream这样的输入输出流的统称. 流和集合的前世今生 概念的差异 在开发中,我们使用最多的类库之一就是集合.集合是一 ...
- File文件操作学习总结
1.java.io.file用于表示文件(目录),也就是说程序员可以通过File类在程序中操作硬盘上的文件和目录, 2.File类只能用于表示文件(目录)的信息(名称和大小),不能对文件内容进行访问. ...
- Linux文件类型(学习笔记六)
一.Linux下的文件类型 普通文件:在由 ls –al 所显示出来的属性方面,第一个属性为 [ - ] 目录文件:在由 ls –al 所显示出来的属性方面,第一个属性为 [ d ] 设备文件:一般都 ...
- jQuery HTML操作学习笔记
学习资料 jQuery教程 获取 1.获取.设置元素的内容 1.1获取或设置目标元素的文本内容 语法 $(selector).text(); 获取元素文本内容 $(selector).text(con ...
随机推荐
- 控制反转( IoC)和依赖注入(DI)
控制反转( IoC)和依赖注入(DI) tags: 容器 依赖注入 IOC DI 控制反转 引言:如果你看过一些框架的源码或者手册,像是laravel或者tp5之类的,应该会提到容器,依赖注入,控制反 ...
- Hibernate学习笔记一 使用idea开发工具搭建框架
1.导包,包下载地址:http://hibernate.org/orm/downloads/ 2.创建数据库,准备表,实体.示例: CREATE TABLE `cst_customer` ( `cus ...
- Vue项目使用CDN优化首屏加载
前言 作为一个网站应用,加载速度是非常重要的.加载速度,一个是程序的合理安排,如以组件按需加载,一个是js.css等资源的异步加载. 在Vue项目中,引入到工程中的所有js.css文件,编译时都会被打 ...
- 基础补充:使用xlrd模块读取excel文件
因为接口测试用例使用excel文件来维护的,所以有必要学习下操作excel的基本方法 参考博客:python 3 操作 excel 把自己练习的代码贴出来,是一些基本的操作,每行代码后面都加了注释. ...
- Python2.x的编码问题
1. 计算机编码历史 ASCII Python的默认编码,其是一种单字节的编码.刚开始计算机世界里只有英文,而单字节可以表示256个不同的字符.最开始ASCII只定义了128个字符编码,包括96个文字 ...
- Beta版本敏捷冲刺每日报告——Day4
1.情况简述 Beta阶段第四次Scrum Meeting 敏捷开发起止时间 2017.11.5 08:00 -- 2017.11.5 22:00 讨论时间地点 2017.11.5晚9:00,软工所实 ...
- Python 双向链表
操作 is_empty() 链表是否为空 length() 链表长度 travel() 遍历链表 add(item) 链表头部添加 append(item) 链表尾部添加 insert(pos, it ...
- 亚马逊AWS学习——EC2的自定义VPC配置
1 网络配置 EC2即亚马逊AWS云服务中的虚拟主机.创建EC2实例时如果使用的默认VPC并分配了公有IP是可以上网的.但我们经常需要自定义的网络环境,这时就需要自己定义VPC和子网了. 1.1 配置 ...
- Struts2之Struts2的标签库
前言: Struts2提供了大量的标签 ,用来帮助开发表现层页面,这些表现一方面解决了美观性的需求,因为它们具有html标签一样的外观,另一方面它们解决了功能性的需求, 因为它们具有jsp脚本一样的逻 ...
- mysql命令行大全
1.连接Mysql 格式: mysql -h主机地址 -u用户名 -p用户密码1.连接到本机上的MYSQL.首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root ...