文件流

创建文件流

读写文件的第一步就是创建文件流,流是一个用于数据传输的个对象,它是FileStream类型,在创建一个文件流是需要在他的构造中指定参数

语法:

FileStream 文件流对象=new FileStream( String filePath,FileMode fileMode);

其中filePath用于指定要操作的文件,fileMode用于指定文件的打开方式,它是一个枚举类型,

fileMode的常用成员如下:

  • Create:用指定的名称新建一个文件,如果文件已存在则覆盖原有的文件
  • CreateNew:新建一个文件,如果文件已存在会报异常提示文件已存在
  • Open:打开一个文件,使用这个枚举是文件必须已存在,否则会报异常
  • OpenOrCreate:与Open成员类似,如果文件不存在则用指定的名称新建一个文件并打开它
  • Appen:打开现有文件,并在末尾追加新的内容。

小提示:“\”在C#中表示转译,所以我们在写文件路径是不能直接以这样的形式写(“D:\files”),我们可以在“”号的前面加一个@符号来取消转译,也可以用”\\”来代替“\”

文件读写器

创建文件流之后,我们要创建读取器或者写入器,StreamWrite被称为写入器只要将创建好的文件流传入就可以创建它的实例

StreamWriter sw=New StreamWriter(文件流对象);

创建好写入器之后我们就可以调用他的方法向文件类文件流,其主要方法如下:

  • StreamWriter.Write():用于写入流,这个流是我们创建好的流
  • StreamWriter.WriteLine():用于写入一行数据,写入某些数据后跟换行符
  • StreamWriter.Close():用于关闭写入器

注意:当写入器使用完毕后一定要调用Close()方法关闭写入器,否则会发生要写的内容无法写入文件的情况。

StreamReader读取器

StreamReader主要用于读取流中的数据,它主要包含以下方法:

  • StreamReader.ReadLIne():读取文件流中的一行数据,并返回字符串
  • StreamReader.ReadToEnd():从当前位置读到末尾,返回字符串
  • StreamReader.Close();用于关闭读取器。

解决乱码问题

用StreamReader读取文件中的中文文本,有事会出现乱码问题。这并不是C#语言的问题,有可能是因为编码格式的问题。在读取文件是指定对应的编码格式已解决乱码问题。

如:StreamReader myfil=new StreamReader(文件流对象,Encoding.Default);

Encoding的静态成员指定编码格式。如:

  • Default表示获取操作系统当前的编码格式
  • UTF-8表示获取UTF-8格式的编码

文件和目录操作

File和Directory类

File类的常用方法

返回值类型 方法名称 说明
bool Exists(string path) 用于检查指定文件是否存在
void Copy(string sourceFilePath,string destinationFilePath) 将指定路径的原文件中的内容复制到目标文件中,如果目标文件不存在,则在指定路径中新建一个文件
void Move(string sourceFilePath,string  destFileName) 将制定问价移动到一个新的路径
void Delete(string path) 删除指定的文件,如果指定的文件不存在,则不引发异常

File类对文件进行操作而Directory类对目录进行操作(文件夹)

Directory类的常用方法

返回值类型 方法名称 说明
bool Exists(string path) 用于检查指定文件夹在磁盘上是否存在
void Move(string sourceDirName,string destDirName) 用于将文件或目录文件及其内容移到新位置
void Delete(string path,bool recursive) 删除指定目录,如果recursive值为true,则删除子目录中的所有目录内容

静态类和静态方法

静态类只含有静态方法,不能使用new关键字创建静态类的实例。

静态类与非静态类的区别

静态类 非静态类
用static修饰 不用static修饰
只包含静态成员 可以包含静态成员
不可以包含实例成员 可以包含实例成员
使用类名调用静态成员 使用实例对象调用非静态成员
不能被实例化 可以被实例化
不能包含实例构造函数 包含实例构造函数

C#IO流文件操作的更多相关文章

  1. IO流-文件操作

    一.字节流读/写 文件 1.字节流 方式读取文件

  2. C# IO流的操作

    C# IO流的操作非常重要,我们读写文件都会使用到这个技术,这里先演示一个文件内容复制的例子,简要说明C#中的IO操作. namespace ConsoleApplication1 { class P ...

  3. Java---IO加强(3)-IO流的操作规律

    一般写关于操作文件的读取的几个通用步骤!!! 1.明确源和目的. 源:InputStream Reader 一定是被读取的. 目的:OutputStream Writer 一定是被写入的. 2.处理的 ...

  4. C# IO流的操作(一)

    C# IO流的操作非常重要,我们读写文件都会使用到这个技术,这里先演示一个文件内容复制的例子,简要说明C#中的IO操作. namespace ConsoleApplication1 { class P ...

  5. java IO流文件的读写具体实例(转载)

    引言: 关于java IO流的操作是非常常见的,基本上每个项目都会用到,每次遇到都是去网上找一找就行了,屡试不爽.上次突然一个同事问了我java文件的读取,我一下子就懵了第一反应就是去网上找,虽然也能 ...

  6. IO流文件拷贝

    目录 IO流文件拷贝 前言 字节流(使用FileInputStream和FileOutputStream读取每一个字节...) 字节流(使用FileInputStream和FileOutputStre ...

  7. Java文件IO流的操作总结

    Java中的IO操作涉及到的概念及相关类很多,很容易弄混,今天特来整理总结一下,并附上一份完整的文件操作的代码. 概念解析 读和写 流就是管道,向管道里面写数据用输出流:write 从管道里面读数据, ...

  8. 在c#中IO流读写操作

    1.使用FileStream读写文件 文件头: using System;using System.Collections.Generic;using System.Text;using System ...

  9. Java API —— IO流(数据操作流 & 内存操作流 & 打印流 & 标准输入输出流 & 随机访问流 & 合并流 & 序列化流 & Properties & NIO)

    1.操作基本数据类型的流     1) 操作基本数据类型 · DataInputStream:数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型.应用程序可以使用数据输出 ...

随机推荐

  1. Dos命令 WIN10 WIFI命令

    设置WIFI命令: netsh wlan set hostednetwork ssid=T key=123456798 mode=allow netsh wlan start hostednetwor ...

  2. 主流C语言编译器介绍

  3. SDUT OJ 数据结构实验之二叉树三:统计叶子数

    数据结构实验之二叉树三:统计叶子数 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descr ...

  4. 用 GitLab CI 进行持续集成

    简介 从 GitLab 8.0 开始,GitLab CI 就已经集成在 GitLab 中,我们只要在项目中添加一个 .gitlab-ci.yml 文件,然后添加一个 Runner,即可进行持续集成. ...

  5. PHP批量给目录下所有的文件转换编码

    代码如下: function tree(&$arr_file, $directory, $dir_name=''){            $mydir = dir($directory);  ...

  6. Qt 学习之路 2(32):贪吃蛇游戏(2)

    Qt 学习之路 2(32):贪吃蛇游戏(2) 豆子 2012年12月27日 Qt 学习之路 2 55条评论 下面我们继续上一章的内容.在上一章中,我们已经完成了地图的设计,当然是相当简单的.在我们的游 ...

  7. git 各个区的区别

    Git有三大区(工作区.暂存区.版本库)以及几个状态(untracked.unstaged.uncommited) 把文件往Git版本库里添加的时候,是分两步执行的: 第一步是用 git add 把文 ...

  8. C++_类继承7-类设计回顾

    编译器生成的成员函数 编译器会自动生成一些公有的成员函数——特殊成员函数. 1. 默认构造函数 提供构造函数的动机之一是确保对象总能被正确地初始化.如果类包含指针成员,则必须初始化这些成员.最好提供一 ...

  9. DEM反应不收敛问题

    之前算DEM反应一直不收敛,后来把计算规模减少到两个固定颗粒,也就是仿照reactive-chemistry和evaperation这两个算例. 目前reactive-chemistry这个算例,把各 ...

  10. paraview添加vector

    https://youtu.be/cygVdhn-kG0 (须自行FQ)