C#基础——IO
最近一直忙着做项目,偶尔会碰到一些文件读写方面的需求,当我回忆读写的代码时,发现脑子里存在诸多空白。这是不妙的,于是连忙翻出以前记下的笔记,上面还存在着我当初写下的知识点。怕以后哪天笔记找不到了或者有破损,不如写到网上来,也方便自己查找。
使用命名空间:using System.IO;
//Encoding.Default:以默认形式转换字符,可以有效防止读出来的文本乱码
File.ReadAllText("path",Encoding.Default);//读文件所有内容,返回一个string
File.ReadAllLines("path", Encoding.Default);//读文件所有行,返回一个string数组,元素为每一行
File.WriteAllText("path","text");//写,如果一开始文本不存在,则会自动创建,如果文本存在,则会覆盖
File.WriteAllLines("path",string[]);//写(参数为数组),如果一开始文本不存在,则会自动创建,如果文本存在,则会覆盖
//以下两个方法可以完成对磁盘上任何类型文件进行读写操作
File.ReadAllBytes("path");//返回一个字节数组,用byte[]接住
File.WriteAllBytes("path",byte[]);//将一个字节数组写出来 //注意:file类只适合写小文件(2GB以下),因为它的读取过程时将内容整体读入,对本地内存压力比较大
文件流技术:
FileStream fs = new FileStream("path", FileMode.OpenOrCreate, FileAccess.Read);//创建一个字节流对象
byte[] byetes=new byte[*];//准备一个字节数组
//调用read方法读取文件内容并存储到字节数组中(编码)
fs.Read(byetes, , byetes.Length);//三个参数分别为提供的数组容器,从哪个位置开始,从哪个位置结束。返回一个int,表示结束位置
Encoding.Default.GetString(byetes);//按照默认的编码方式来解码字节数组的内容,返回一个string
但我们有很多情况下是不知道文件有多大的,提前准备好相应的byte数组也没什么意义。所以,此时就要靠Encoding.Default.GetString(byetes,0,num);这种形式,将其套用在while中,当num==0时结束。
StreamReader与StreamWriter
该类提供了一个很好的属性叫做Endofstream 可以用来判断文件是否读完。
*所有流都是非托管,需要关闭或释放。
using (FileStream fs = new FileStream("path", FileMode.OpenOrCreate, FileAccess.Read))
{
using (StreamReader sr = new StreamReader(fs, Encoding.Default))
{
char[] c = new char[];
while (!sr.EndOfStream)
{
int num = sr.Read(c, , c.Length);
string s = new string(c);
Console.WriteLine(s);
}
}
}
同理,StreamWriter:
StreamWriter sw = new StreamWriter(fs, Encoding.Default);
sw.Write("string");
以此来写入内容
C#基础——IO的更多相关文章
- C 标准库基础 IO 操作总结
其实输入与输出对于不管什么系统的设计都是异常重要的,比如设计 C 接口函数,首先要设计好输入参数.输出参数和返回值,接下来才能开始设计具体的实现过程.C 语言标准库提供的接口功能很有限,不像 Pyth ...
- Java基础IO流(二)字节流小案例
JAVA基础IO流(一)https://www.cnblogs.com/deepSleeping/p/9693601.html ①读取指定文件内容,按照16进制输出到控制台 其中,Integer.to ...
- Java基础-IO流对象之压缩流(ZipOutputStream)与解压缩流(ZipInputStream)
Java基础-IO流对象之压缩流(ZipOutputStream)与解压缩流(ZipInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 之前我已经分享过很多的J ...
- Java基础-IO流对象之随机访问文件(RandomAccessFile)
Java基础-IO流对象之随机访问文件(RandomAccessFile) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.RandomAccessFile简介 此类的实例支持对 ...
- Java基础-IO流对象之内存操作流(ByteArrayOutputStream与ByteArrayInputStream)
Java基础-IO流对象之内存操作流(ByteArrayOutputStream与ByteArrayInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.内存 ...
- Java基础-IO流对象之数据流(DataOutputStream与DataInputStream)
Java基础-IO流对象之数据流(DataOutputStream与DataInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数据流特点 操作基本数据类型 ...
- Java基础-IO流对象之打印流(PrintStream与PrintWriter)
Java基础-IO流对象之打印流(PrintStream与PrintWriter) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.打印流的特性 打印对象有两个,即字节打印流(P ...
- Java基础-IO流对象之序列化(ObjectOutputStream)与反序列化(ObjectInputStream)
Java基础-IO流对象之序列化(ObjectOutputStream)与反序列化(ObjectInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.对象的序 ...
- java基础-IO流对象之Properties集合
java基础-IO流对象之Properties集合 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Properties集合的特点 Properties类表示了一个持久的属性集. ...
- Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader)
Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.字符缓冲流 字符缓冲流根据流的 ...
随机推荐
- Android 中加载本地Html 跨域问题,http协议允许加载
一.需求: 后台加载HTML的包时间太长,太卡,让把所有的HTML包放到前台:使用的是file://协议,有些内容和样式加载不出来,H5那边说需要用http://协议来加载: 二.处理过程: 安卓最简 ...
- AD17无法复制原理图到Word的解决方法
标题: 解决AD17无法复制原理图到WORD 作者: 梦幻之心星 347369787@QQ.com 标签: [AD, Word, 原理图] 目录: 软件 日期: 2019-3-17 目录 前提说明: ...
- MySQL 可重复读,差点就我背上了一个 P0 事故!
小黑黑的碎碎念 哎,最近有点忙,备考复习不利,明天还要搬家,好难啊!! 本想着这周鸽了,但是想想还是不行,爬起来,更新一下,周更可不能断.偷懒一下,修改一下之前的一篇历史文章,重新发布一下. P0 事 ...
- 循序渐进VUE+Element 前端应用开发(5)--- 表格列表页面的查询,列表展示和字段转义处理
在我们一般开发的系统界面里面,列表页面是一个非常重要的综合展示界面,包括有条件查询.列表展示和分页处理,以及对每项列表内容可能进行的转义处理,本篇随笔介绍基于Vue +Element基础上实现表格列表 ...
- 关于ueditor编译器
取消自动保存提示.edui-editor-messageholder.edui-default{ visibility:hidden;} Qiyuwen 1033935470@qq.com
- Chisel3 - 运算符和位宽推断
https://mp.weixin.qq.com/s/rI-CJM6GyI6EUHPZ3uYiFg 如同Verilog中的众多运算符,Chisel也针对自身的数据类型,提供了很多运算符. Ch ...
- Java实现 蓝桥杯 算法提高 01背包
算法提高 01背包 时间限制:1.0s 内存限制:256.0MB 问题描述 给定N个物品,每个物品有一个重量W和一个价值V.你有一个能装M重量的背包.问怎么装使得所装价值最大.每个物品只有一个. 输入 ...
- Java实现 LeetCode 530 二叉搜索树的最小绝对差(遍历树)
530. 二叉搜索树的最小绝对差 给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值. 示例: 输入: 1 \ 3 / 2 输出: 1 解释: 最小绝对差为 1,其中 2 ...
- Java实现 蓝桥杯VIP 算法训练 Hankson的趣味题
问题描述 Hanks 博士是BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫Hankson.现 在,刚刚放学回家的Hankson 正在思考一个有趣的问题. 今天在课堂上,老师讲解了如 ...
- Java实现 LeetCode 1227 飞机座位分配概率
1227. 飞机座位分配概率 有 n 位乘客即将登机,飞机正好有 n 个座位.第一位乘客的票丢了,他随便选了一个座位坐下. 剩下的乘客将会: 如果他们自己的座位还空着,就坐到自己的座位上, 当他们自己 ...