最近一直忙着做项目,偶尔会碰到一些文件读写方面的需求,当我回忆读写的代码时,发现脑子里存在诸多空白。这是不妙的,于是连忙翻出以前记下的笔记,上面还存在着我当初写下的知识点。怕以后哪天笔记找不到了或者有破损,不如写到网上来,也方便自己查找。

使用命名空间: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的更多相关文章

  1. C 标准库基础 IO 操作总结

    其实输入与输出对于不管什么系统的设计都是异常重要的,比如设计 C 接口函数,首先要设计好输入参数.输出参数和返回值,接下来才能开始设计具体的实现过程.C 语言标准库提供的接口功能很有限,不像 Pyth ...

  2. Java基础IO流(二)字节流小案例

    JAVA基础IO流(一)https://www.cnblogs.com/deepSleeping/p/9693601.html ①读取指定文件内容,按照16进制输出到控制台 其中,Integer.to ...

  3. Java基础-IO流对象之压缩流(ZipOutputStream)与解压缩流(ZipInputStream)

    Java基础-IO流对象之压缩流(ZipOutputStream)与解压缩流(ZipInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 之前我已经分享过很多的J ...

  4. Java基础-IO流对象之随机访问文件(RandomAccessFile)

    Java基础-IO流对象之随机访问文件(RandomAccessFile) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.RandomAccessFile简介 此类的实例支持对 ...

  5. Java基础-IO流对象之内存操作流(ByteArrayOutputStream与ByteArrayInputStream)

    Java基础-IO流对象之内存操作流(ByteArrayOutputStream与ByteArrayInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.内存 ...

  6. Java基础-IO流对象之数据流(DataOutputStream与DataInputStream)

    Java基础-IO流对象之数据流(DataOutputStream与DataInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数据流特点 操作基本数据类型 ...

  7. Java基础-IO流对象之打印流(PrintStream与PrintWriter)

    Java基础-IO流对象之打印流(PrintStream与PrintWriter) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.打印流的特性 打印对象有两个,即字节打印流(P ...

  8. Java基础-IO流对象之序列化(ObjectOutputStream)与反序列化(ObjectInputStream)

    Java基础-IO流对象之序列化(ObjectOutputStream)与反序列化(ObjectInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.对象的序 ...

  9. java基础-IO流对象之Properties集合

    java基础-IO流对象之Properties集合 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Properties集合的特点 Properties类表示了一个持久的属性集. ...

  10. Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader)

    Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.字符缓冲流 字符缓冲流根据流的 ...

随机推荐

  1. 了解Lombok插件

    Lombok是什么 Lombok可以通过注解形式帮助开发人员解决POJO冗长问题,帮助构造简洁和规范的代码,通过注解可产生相应的方法. Lombok如何在IDEA中使用 我们都知道,使用一种工具,一定 ...

  2. spring cloud系列教程第六篇-Eureka集群版

    spring cloud系列教程第六篇-Eureka集群版 本文主要内容: 本文来源:本文由凯哥Java(kaigejava)发布在博客园博客的.转载请注明 1:Eureka执行步骤理解 2:集群原理 ...

  3. Charles截获iPhone网络请求

    Charles介绍:Charles是在Mac下常用的截取网络封包的工具,在做iOS开发时,有时为了调试与服务器端的网络通讯协议,常常需要服务端原因一起调试.有了Charles客户端人员自娱自乐了,想怎 ...

  4. unix 密码破解,zip破解总结

    unix /etc/passwd 破解,假设的前两位是salt import crypt #数据比较 def password_crak(pass_word): salt = pass_word[0: ...

  5. 09 . Python3之常用模块

    模块的定义与分类 模块是什么? 一个函数封装一个功能,你使用的软件可能就是由n多个函数组成的(先备考虑面向对象).比如抖音这个软件,不可能将所有程序都写入一个文件,所以咱们应该将文件划分,这样其组织结 ...

  6. 小谢第7问:js前端如何实现大文件分片上传、上传进度、终止上传以及删除服务器文件?

    文件上传一般有两种方式:文件流上传和base64方式上传,毫无疑问,当进行大文件上传时候,转为base64是不现实的,因此用formData方式结合文件流,直接上传到服务器 本文主要结合vue的来讲解 ...

  7. Bootstrap解决页面缩小变形的办法

    bootstrap布局是应用得很广泛的一种网页布局方法,例如:我们用一种中间内容很流行的布局分布:3-6-3式布局.代码如下 <style type="text/css"&g ...

  8. JAVASE(十三) 异常处理

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.异常体系结构 ​ 说明: |-----Throwable |-----Error :没针对性代码进行 ...

  9. ASP.NET关于书籍详情和删除的Demo(HttpHandler进行页面静态化[自动生成html网页]+Entity Framework通过类创建数据库+EF删查)

    这次的Demo如标题所示, 首先第一步EF创建数据库 创建两个类,一个是图书类,一个是图书类别的类 using System; using System.Collections.Generic; us ...

  10. (Java实现) 洛谷 P1200 你的飞碟在这儿

    题目描述 众所周知,在每一个彗星后都有一只UFO.这些UFO时常来收集地球上的忠诚支持者.不幸的是,他们的飞碟每次出行都只能带上一组支持者.因此,他们要用一种聪明的方案让这些小组提前知道谁会被彗星带走 ...