创建或覆盖文件

需求:如果文件不存在,创建之,如果存在,覆盖之。

1,可能有问题的方法

using (FileStream fs = File.OpenWrite(@"d:\work\1.txt")) {

    byte[] toBytes = Encoding.UTF8.GetBytes("");
fs.Write(toBytes, , toBytes.Length);
}

这个方法不会清空已存在文件的内容,如果源文件的内容比后写入的内容长,那么这些长的内容会被保留,这通常不是我们想要的结果。

2,正确的方法

using (FileStream fs = File.Create(@"d:\work\1.txt")) {
byte[] toBytes = Encoding.UTF8.GetBytes("");
fs.Write(toBytes, , toBytes.Length);
}

唯一的不同就是把File.OpenWrite改成了File.Create,如果文件已经存在,那么其内容会被清空。

3,方法2的简化版

File.WriteAllBytes(@"d:\work\1.txt", Encoding.UTF8.GetBytes(""));

4,方法2的文本版

using (StreamWriter sw = File.CreateText(@"d:\work\1.txt")) {
sw.Write("");
}

5,方法4的简化版

File.WriteAllText(@"d:\work\1.txt", "");

读文件

1,正常读

byte[] buff = new byte[]; //假设文件不超过1KB
using(FileStream fs = File.OpenRead(@"d:\work\1.txt")) {
int len = fs.Read(buff, , );
string content = Encoding.UTF8.GetString(buff, , len);
Console.WriteLine(content);
}

2,读文本文件

using (StreamReader sr = File.OpenText(@"d:\work\1.txt")) {
string content = sr.ReadToEnd();
Console.WriteLine(content);
}

3,方法2的简化版

string content = File.ReadAllText(@"d:\work\1.txt");

追加

1,正常追加

using (FileStream fs = File.Open(@"d:\work\1.txt", FileMode.Append, FileAccess.Write)) {
byte[] toWrite = Encoding.UTF8.GetBytes("123123\r\n");
fs.Write(toWrite, , toWrite.Length);
}

2,追加文本

using (StreamWriter sw = File.AppendText(@"d:\work\1.txt")) {
sw.Write("123123\r\n");
sw.WriteLine(""); //与上面语句等价
}

C#的几种文件操作方法的更多相关文章

  1. 解析XML文件的几种常见操作方法—DOM/SAX/DOM4j

    解析XML文件的几种常见操作方法—DOM/SAX/DOM4j 一直想学点什么东西,有些浮躁,努力使自己静下心来看点东西,哪怕是回顾一下知识.看到了xml解析,目前我还没用到过.但多了解一下,加深点记忆 ...

  2. C#File类常用的文件操作方法(创建、移动、删除、复制等)

    File类,是一个静态类,主要是来提供一些函数库用的.静态实用类,提供了很多静态的方法,支持对文件的基本操作,包括创建,拷贝,移动,删除和 打开一个文件. File类方法的参量很多时候都是路径path ...

  3. Linux下几种文件传输命令 sz rz sftp scp

    Linux下几种文件传输命令 sz rz sftp scp 最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具 ...

  4. [原创] Linux下几种文件传输命令 sz rz sftp scp介绍

    Linux下几种文件传输命令 sz rz sftp scp介绍 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具.由于它是基于SSH的,会在传输过程中对用户的密码.数据等 ...

  5. Objective-C:三种文件导入的方式以及atomic和nonatomic的区别

    一.三种文件导入的方式比较:   类的前项声明@class.import.include: 1.采用@class 类名的方式,它会告诉编译器有这么一个类,目前不需要知道它内部的实例变量和方法是如何定义 ...

  6. JSP下载txt 和 Excel两种文件

    JSP下载txt 和 Excel两种文件 jsp 下载txt文件和excel文件   jsp 下载txt文件和excel文件 最近做了个用jsp下载的页面 将代码贴出来 权作记录吧 1 下载txt文件 ...

  7. *.pro、*.pri、*.prf、*.prl等四种文件

      尽管每次和cmake对比起来,我们总是说 qmake 简单.功能少.但是qmake仍然是一个非常复杂的东西,我想大多人应该和我一样吧: 不是太清楚CONFIG等变量到底如何起作用的 用过的qmak ...

  8. [QT]简单介绍一下 *.pro、*.pri、*.prf、*.prl等四种文件

    转自:http://blog.csdn.net/dbzhang800/article/details/6348432 简单介绍一下 *.pro.*.pri.*.prf.*.prl等四种文件:干嘛用的, ...

  9. UnityEditor下文件操作方法汇总(Unity3D开发之二十四)

    猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/50595585 ...

随机推荐

  1. 自己对Web标准的理解

    1.WEB标准 WEB分层: 1.结构层(HTML)   2.表现(css) 3.行为(js) web标准的优点: * 易于维护:只需更改css文件,就能改变整站的样式: * 页面响应快:HTML文档 ...

  2. 初学python之路-day10

    基础部分先告一段落,今天开始学习函数. 一.函数:完成 特定 功能的代码块,作为一个整体,对其进行特定的命名,该名字就代表函数         -- 现实中:很多问题要通过一些工具进行处理 => ...

  3. .net mvc的“从客户端中检测到有潜在危险的 Request.Form 值”问题解决

    第一种解决方案 : 在控制器调用的方法上添加[ValidateInput(false)] 第二种解决方案 : 在对应的asp.net web页面上加上ValidateRequest="fal ...

  4. APP测试点注意事项汇总

    1.异常测试:包括业务流程的异常情况:业务场景的异常:操作习惯的异常(比如答题过程中会出现声音干扰这样很不友好喔~) 2.网络测试:网络切换的过程中,APP会不会异常:断网情况进行一些操作,APP会不 ...

  5. centOS设置开机自启

    原文:https://blog.csdn.net/txz317/article/details/49683439 1.利用 chkconfig 来配置启动级别 在CentOS或者RedHat其他系统下 ...

  6. Calendar日历工具类

    这个工具类有效的避免跨年的问题 先定义一个日期格式类型: SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:s ...

  7. Python深度学习(Deep Learning with Python) 中文版+英文版+源代码

    Keras作者.谷歌大脑François Chollet最新撰写的深度学习Python教程实战书籍(2017年12月出版)介绍深入学习使用Python语言和强大Keras库,详实新颖.PDF高清中文版 ...

  8. CAS5.3.0安装部署

    部署环境:JDK1.8.x maven-3.5.2 tomcat-8.x.x 1.下载地址 https://github.com/apereo/cas-overlay-template/tree/5. ...

  9. [转] 初探webpack4

    一.前言 2018/2/25,webpack4正式发布,距离现在已经过去三个多月了,也逐渐趋于稳定,而且现在的最新版本都到了4.12.0(版本迭代快得真是让人害怕). 很多人都说webpack复杂,难 ...

  10. js监听用户思否在当前页面

    (function () { var t var hiddenProperty = 'hidden' in document ? 'hidden' : 'webkitHidden' in docume ...