C#IO流文件操作
文件流
创建文件流
读写文件的第一步就是创建文件流,流是一个用于数据传输的个对象,它是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流文件操作的更多相关文章
- IO流-文件操作
一.字节流读/写 文件 1.字节流 方式读取文件
- C# IO流的操作
C# IO流的操作非常重要,我们读写文件都会使用到这个技术,这里先演示一个文件内容复制的例子,简要说明C#中的IO操作. namespace ConsoleApplication1 { class P ...
- Java---IO加强(3)-IO流的操作规律
一般写关于操作文件的读取的几个通用步骤!!! 1.明确源和目的. 源:InputStream Reader 一定是被读取的. 目的:OutputStream Writer 一定是被写入的. 2.处理的 ...
- C# IO流的操作(一)
C# IO流的操作非常重要,我们读写文件都会使用到这个技术,这里先演示一个文件内容复制的例子,简要说明C#中的IO操作. namespace ConsoleApplication1 { class P ...
- java IO流文件的读写具体实例(转载)
引言: 关于java IO流的操作是非常常见的,基本上每个项目都会用到,每次遇到都是去网上找一找就行了,屡试不爽.上次突然一个同事问了我java文件的读取,我一下子就懵了第一反应就是去网上找,虽然也能 ...
- IO流文件拷贝
目录 IO流文件拷贝 前言 字节流(使用FileInputStream和FileOutputStream读取每一个字节...) 字节流(使用FileInputStream和FileOutputStre ...
- Java文件IO流的操作总结
Java中的IO操作涉及到的概念及相关类很多,很容易弄混,今天特来整理总结一下,并附上一份完整的文件操作的代码. 概念解析 读和写 流就是管道,向管道里面写数据用输出流:write 从管道里面读数据, ...
- 在c#中IO流读写操作
1.使用FileStream读写文件 文件头: using System;using System.Collections.Generic;using System.Text;using System ...
- Java API —— IO流(数据操作流 & 内存操作流 & 打印流 & 标准输入输出流 & 随机访问流 & 合并流 & 序列化流 & Properties & NIO)
1.操作基本数据类型的流 1) 操作基本数据类型 · DataInputStream:数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型.应用程序可以使用数据输出 ...
随机推荐
- 指针和动态分配内存 (不定长度数组)------新标准c++程序设计
背景: 数组的长度是定义好的,在整个程序中固定不变.c++不允许定义元素个数不确定的数组.例如: int n; int a[n]; //这种定义是不允许的 但是在实际编程中,往往会出现要处理的数据数量 ...
- 20165219 2017-2018-2《Java程序设计》课程总结
20165219 2017-2018-2<Java程序设计>课程总结 一.每周作业链接汇总 20165219 我期望的师生关系 20165219学习基础与C语言基础调查 20165219 ...
- PyCharm4.5.4注册码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 name : newasp == ...
- ubuntu 上安装支付宝安全插件不能运行问题
1.在ubuntu的firefox浏览器中打开支付宝首页,不能登录,按照提示下载插件 aliedit.tar.gz 2.解压到某个文件夹下,有文件aliedit.sh, 运行 # sh aliedit ...
- Python-匿名函数(lambda),map()
1. map() 描述 map() 会根据提供的函数对指定序列做映射. 第一个参数 function 以第二个参数序列中的每一个元素调用 function 函数,返回一个map对象. 语法 map() ...
- AtCoder Beginner Contest 113 A
A - Discount Fare Time limit : 2sec / Memory limit : 1024MB Score: 100 points Problem Statement Ther ...
- 通过CMD命令设置网络参数
在微软的Windows系统中,一般情况下都是在可视化界面中设置IP地址和DNS的,进入“本地连接”->“属性”->“TCP/IP协议”,设置IP和DNS.但有些情况是没有这个权限的,比如在 ...
- table加载慢
为了让大表格(table)在下载的时候可以分段的显示,就是说在浏览器解析html时,table是作为一个整体解释的,使用tbody可以优化显示,如果表格很长,用tbody分段,可以一部分一部分地显示, ...
- drf之序列化器的使用
一.序列化器-Serializer 作用: 1. 序列化,序列化器会把模型对象转换成字典,经过response以后变成json字符串 2. 完成数据校验功能 3. 反序列化,把客户端发送过来的数据,经 ...
- webgoat环境搭建
链接: https://pan.baidu.com/s/1gfEKIyB 密码: 5zdq 1:配置Java环境变量,过程请找度娘 2:解压下载好的tomcat 3:将webgoat-containe ...