文件流

创建文件流

读写文件的第一步就是创建文件流,流是一个用于数据传输的个对象,它是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. 函数形参为基类数组,实参为继承类数组,下存在的问题------c++程序设计原理与实践(进阶篇)

    示例: #include<iostream> using namespace std; class A { public: int a; int b; A(int aa=1, int bb ...

  2. php 中 include 与 require 的区别

    以下内容转自:https://blog.csdn.net/hsd2012/article/details/51089785 网上太多关于php中include与require区别.其实说的都是经不起验 ...

  3. python 时间相关函数

    python 中与时间处理相关的模块包括 time.datetime.以及 calendar time 模块 time() 函数:time() 函数用于返回当前时间的时间戳(1970年01月08时00 ...

  4. 基于Spring MVC的文件上传和下载功能的实现

    配置文件中配置扫描包,以便创建各个类的bean对象 <context:component-scan base-package="com.neuedu.spring_mvc"& ...

  5. P3596 [POI2015]MOD

    $ \color{#0066ff}{ 题目描述 }$ 给定一棵无根树,边权都是1,请去掉一条边并加上一条新边,定义直径为最远的两个点的距离,请输出所有可能的新树的直径的最小值和最大值 \(\color ...

  6. JUC包下CountDownLatch学习笔记

    CountDownLatch的作用是能使用多个线程进来之后,且线程任务执行完毕之后,才执行, 闭锁(Latch):一种同步方法,可以延迟线程的进度直到线程到达某个终点状态.通俗的讲就是,一个闭锁相当于 ...

  7. Android 文字转语音(TTS)

    1.介绍 2.xml文件布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xml ...

  8. 获取HTML代码用 像阿里巴巴

         public string GetHtml(string url)         {               string html = String .Empty;          ...

  9. Carryon 数数字

    Carryon 数数字 描述 Carryon 最近迷上了数数字,然后 Starry 给了他一个区间[l,r] ,然后提了几个要求, 需要将 l 到 r 之间的数全部转化成 16 进制,然后连起来. 将 ...

  10. Autofac构建

    1.初始化 using System.Reflection; using System.Web; using System.Web.Mvc; using System.Configuration; u ...