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#之文件操作(学习笔记)的更多相关文章

  1. MySQL4.0命令操作学习笔记

    声明:下列内容并非原创,仅仅是最近学习笔记整理. -------------------------------------- 进入mysql安装路径bin目录下: 1.开启服务 winmysqlad ...

  2. python的文件处理学习笔记

    python的文件处理函数是open() 以下主要是关于这个函数的一些学习笔记 1.文件处理离不开编码 要注意的是文件打开时的编码和文件保存时的编码的统一,这样才能保证你打开的文件不会存在乱码 总结: ...

  3. C# IO流与文件读写学习笔记

    本笔记摘抄自:https://www.cnblogs.com/liyangLife/p/4797583.html,记录一下学习过程以备后续查用. 一.文件系统 1.1文件系统类的介绍 文件操作类大都在 ...

  4. Linux文件操作学习总结【转载】

    本文转载自: http://blog.csdn.net/xiaoweibeibei/article/details/6556951 文件类型:普通文件(文本文件,二进制文件).目录文件.链接文件.设备 ...

  5. Linux用户、用户组、文件权限学习笔记

    最近打算更仔细学习一下linux操作系统.先是恶补了一下用户.用户组.文件权限这三样比较重要的知识.学习这几样东西,得先掌握linux的权限系统相关知识.linux的权限系统主要是由用户.用户组和权限 ...

  6. Git操作学习笔记

    根据廖雪峰老师git教程学习整理 这里需要辨析一下概念.Github是代码托管平台,是协作的工具;而Git是版本控制工具.Git不需要联网,在本机就可以使用 集中式版本控制系统与分布式版本控制系统 S ...

  7. 侠说java8--Stream流操作学习笔记,都在这里了

    前言 首次接触到Stream的时候以为它是和InputStream.OutputStream这样的输入输出流的统称. 流和集合的前世今生 概念的差异 在开发中,我们使用最多的类库之一就是集合.集合是一 ...

  8. File文件操作学习总结

    1.java.io.file用于表示文件(目录),也就是说程序员可以通过File类在程序中操作硬盘上的文件和目录, 2.File类只能用于表示文件(目录)的信息(名称和大小),不能对文件内容进行访问. ...

  9. Linux文件类型(学习笔记六)

    一.Linux下的文件类型 普通文件:在由 ls –al 所显示出来的属性方面,第一个属性为 [ - ] 目录文件:在由 ls –al 所显示出来的属性方面,第一个属性为 [ d ] 设备文件:一般都 ...

  10. jQuery HTML操作学习笔记

    学习资料 jQuery教程 获取 1.获取.设置元素的内容 1.1获取或设置目标元素的文本内容 语法 $(selector).text(); 获取元素文本内容 $(selector).text(con ...

随机推荐

  1. JS实现键盘监听

    不说废话直接上正文: <html> <head> <meta http-equiv="Content-Type" content="text ...

  2. 基于hi-nginx的web开发(python篇)——表单处理和文件上传

    hi-nginx会自动处理表单,所以,在hi.py框架里,要做的就是直接使用这些数据. 表单数据一般用GET和POST方法提交.hi-nginx会把这些数据解析出来,放在form成员变量里.对pyth ...

  3. Matlab绘图基础——图形绘制的插值

    interp1   %1-D data interpolation interpft  %使用fft算法插值     %将原数据x转换到频率域,再逆转换回来更密集的数据采样点 spline    %一 ...

  4. Android实用代码七段(二)

    正文 一.获取应用程序下所有Activity public static ArrayList<String> getActivities(Context ctx) {       Arra ...

  5. jdk 环境配置踩坑

    其实在网上已经有很多环境配置的介绍了.不过我还是想用切身经历告诉大家这里面可能遇到的坑. 首先,先给大家讲一下JAVA_HOME,path,CLASSPATH JAVA_HOME 指向的是JDK的安装 ...

  6. 敏捷冲刺每日报告——Day4

    1.情况简述 Alpha阶段第一次Scrum Meeting 敏捷开发起止时间 2017.10.28 00:00 -- 2017.10.29 00:00 讨论时间地点 2017.10.28晚9:30, ...

  7. Alpha冲刺Day10

    Alpha冲刺Day10 一:站立式会议 今日安排: 由林静完成第三方机构的用户信息管理模块 由张梨贤完成第三方机构的委托授权管理模块 由黄腾飞和周静平完成政府人员模块下风险管控子模块下的核实企业风险 ...

  8. day9

    Alpha冲刺Day9 一:站立式会议 今日安排: 经过为期5天的冲刺,基本完成企业人员模块的开发.因第三方机构与企业存在委托的关系.第三方人员对于风险的自查.风险列表的展示以及自查风险的统计展示(包 ...

  9. mongodb 高级操作

    聚合 aggregate 聚合(aggregate)主要用于计算数据,类似sql中的sum().avg() 语法 db.集合名称.aggregate([{管道:{表达式}}]) 管道 管道在Unix和 ...

  10. nyoj 复杂度

    复杂度 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 for(i=1;i<=n;i++) for(j=i+1;j<=n;j++) for(k=j+1;k ...