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 数据类型.应用程序可以使用数据输出 ...
随机推荐
- 定时器timer类
timer类 Timer(定时器)是Thread的派生类,用于在指定时间后调用一个方法. 构造方法: Timer(interval, function, args=[], kwargs={}) in ...
- React基础篇(2) -- state&props&refs
内容简介 state props refs 行内样式及动态类名 state 基本介绍 React 把组件看成是一个状态机(State Machines).通过与用户的交互,实现不同状态,然后渲染 UI ...
- 【转】C#使用Oracle.ManagedDataAccess.dll
源地址:https://www.cnblogs.com/goldenbridge/p/7812081.html
- mysql双机互相备份
互备/***************************************master服务器**************************************/vi my.cnf[ ...
- hexo的jacman主题配置
获得更多资料欢迎进入我的网站或者 csdn或者博客园 这是在我搭建博客时用的主题,这个主题时基于pacman修改的,同时我也是借助于wuchong同时他还在一直更新.一下时我的一些基本配置: 相关文章 ...
- 神奇的Form表单
今天坐标单上传,提交的按钮使用了<button>,发现不论怎么写ajax和设置form表单,都会刷新页面,百思不得解,然后偶然间把<button>变成<input typ ...
- [SDOi2012]Longge的问题 BZOJ2705 数学
题目背景 SDOi2012 题目描述 Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题.现在问题来了:给定一个整数N,你需要求出∑gcd(i, N)(1<=i <=N). ...
- 3、pandas
原文出处: pandas.pydata.org 译文出处:石卓林 这是关于pandas的简短介绍,主要面向新用户.可以参阅Cookbook了解更复杂的使用方法. 链接:http://python. ...
- wpa_supplicant
一 函数接口介绍 wpa_ctrl_open接口用来打开wpa_supplicant的控制接口,在UNIX系统里使用UNIX domain sockets,而在Windows里则是使用UDP sock ...
- js Array属性和用法
//构造函数创建数组 var arr1=new Array(); //字面量的方式 var arr2=[]; 1.Array.isArray(对象)---->判断这个对象是不是数组 //判断对象 ...