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 ...
随机推荐
- 【CSS】 CSS基础知识 属性和选择
css基础知识 html的基本标签都是千篇一律的,为了能够个性化外观,就需要进行样式的调整,而css就是专门用来维护,管理样式的一种格式.在html中定义css有三种方法 1. 为标签添加style属 ...
- python(字符串操作)
一.字符串的局部替换 python 字符串替换可以用2种方法实现:1是用字符串本身的方法.2用正则来替换字符串 下面用个例子来实验下:a = 'hello word'我把a字符串里的word替换为py ...
- SSH三大框架的整合
SSH三个框架的知识点 一.Hibernate框架 1. Hibernate的核心配置文件 1.1 数据库信息.连接池配置 1.2 Hibernate信息 1.3 映射配置 1.4 Hibernate ...
- 对Java的初步的认识:
学习JAVA的优势 1) Java广受欢迎 Java是世界上最受欢迎的编程语言之一,有无限多种方法使用Java.据2016年数据显示,Java被评为最受欢迎的编程语言之一2) Java薪资比较好最新 ...
- C作业--数据类型
一.PTA实验作业 题目1:7-3 倒顺数字串 1. 本题PTA提交列表 2. 设计思路(伪代码) (1)本题是要求输入倒顺序数串,首先看到这种题肯定是需要用到循环,那就先定一个整形i来进行循环,n是 ...
- 项目Alpha冲刺Day5
一.会议照片 二.项目进展 1.今日安排 熟悉后台框架并尝试编写及继续搭建前台框架模版.完成登录相关的功能实现,添加一些用户相关的单元测试代码,以及相应的测试数据. 2.问题困难 前端不是很熟,页面框 ...
- Linux进程调度分析
原文:http://www.2cto.com/os/201112/113229.html 操作系统要实现多进程,进程调度必不可少. 有人说,进程调度是操作系统中最为重要的一个部分.我觉得这种说法说得太 ...
- 为SRS流媒体服务器添加HLS加密功能(附源码)
为SRS流媒体服务器添加HLS加密功能(附源码) 之前测试使用过nginx的HLS加密功能,会使用到一个叫做nginx-rtmp-module的插件,但此插件很久不更新了,网上搜索到一个中国制造的叫做 ...
- php函数var_dump() 、print_r()、echo()
var_dump() 能打印出类型 print_r() 只能打出值 echo() 是正常输出... 需要精确调试的时候用 var_dump(); 一般查看的时候用 print_r() 另外 , ech ...
- webapi 使用Autofac 开发经历
2018/4/6 号 早上五点..被手机震动吵醒. 之后直接打开电脑,打算再加强下我自己的webapi这套东西. 虽然三年的工作经验接触了N多框架和各种风格的开发方式,但是让我自己来搞一套实在不会搞, ...