C# IO 随笔

File类

1.用File.Create创建文件,会返回一个FileStream对象,如果不关闭这个对象,无法用File.AppendAllText追加文本

  报错示例:

   File.Create("D://a.txt");
   File.AppendAllText("D://a.txt", "你好");

  正确示例:

   FileStream fs = File.Create("D://a.txt");

   fs.Close();

   File.AppendAllText("D://a.txt", "你好");

2.File.Copy如果目标文件存在,会报错,可以将第二个参数设置为True,覆盖文件

3.File.Move如果目标文件存在,会报错,无法进行替换操作

4.File.CreateText跟File.Create情况类似,会返回一个StreamWriter对象 , StreamWriter用法在后面会说到

5.File.OpenRead 和 File.OpenWrite 分别返回 只读的FileStream对象和 只写的FileStream对象

6.File.Replace 使用其他文件的内容替换指定文件的内容,这一过程将删除原始文件,并创建被替换文件的备份

  示例:

    File.Replace("D://a.txt", "D://b.txt", "D://b-backup.txt");

    将文本b.txt的内容,替换成a.txt的内容,删除b.txt,并建立b的备份文件b-backup.txt

FileInfo类

FileInfo用来表示文件的基本信息 , 同时他还有File类的一些方法

1.Attributes 使用FileAttributes枚举,获取或设置当前文件或目录的特性

2.Extension 获取文件扩展名,只读属性

3.FullName 文件完整路径(包含文件名),只读

4.Name  文件名称(带扩展名)

5.Directory 包含当前文件的目录,DirectoryInfo对象,只读属性

6.DirectoryName 文件完整路径(不包含文件名),只读

File类与FileInfo类的选择(个人理解 , 勿喷)

  • 快速操作文件用File。
  • 想用更多的方法、属性,用FileInfo。

Directory类

1.Directory.CreateDirectory  创建目录并返回一个DirectoryInfo对象

2.Directory.GetDirectories 返回子目录的数组

3.Directory.GetDirectoryRoot 返回磁盘根目录(如 D:/)

4.Directory.GetFiles  返回指定目录下所有文件的名称数组

5.Directory.GetFileSystemEntries 返回指定目录下 , 文件和目录名称的数组,相当于 Directory.GetDirectories 和 Directory.GetFiles的并集

6.EnumerateDirectories , EnumerateFiles ,EnumerateFilesSystemEntries 相当于2,4,5的3个方法,返回IEnumerable<string>集合,性能比较好

DirectoryInfo类

包含的是Directory的一些基本信息

FileStream类

1.使用示例(最常用的)

  FileStream fs = new FileStream("D://a.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);

  文本读取

  实例化并打开了一个数据流对象

  int _length = (int)fs.Length;

  byte[] data = new byte[_length ];

  声明一个跟数据流对象同样长度的byte数组

  fs.Read(data,0,_length);

  将数据流对象读取到byte数组内

  string str = System.Text.Encoding.Default.GetString(data);

  将byte数组转换成文本

  fs.Flush();

  fs.Close();

  释放

  文本写入

  byte[] b = Encoding.Default.GetBytes("你好");

  将文本转换成byte数组

  fs.Write(b, 0, b.Length);

  写入

  fs.Flush();

  fs.Close();

  释放

  未完待续~~~~~~~~~~~~~~~~~~~~~~

  

  

时间: 2024-07-29 19:52:14

C# IO 随笔的相关文章

.net下使用socket.io随笔记录

一.问题背景 目前公司在互联网产品上需要程序与前端部分要进行一个实时交互,在进行一定程度上的选型后,决定使用socket.io框架进行一个实践,算是公司的一个新的 尝试,也算是给自己增加增长见闻,由于我是做后端以及桌面程序开发,所以前端部分就不细聊,主要是针对桌面程序如何连接socket.io进行一个尝试 二.基本逻辑图 本地应用程序:部署在局域网内(可以联通外网),主要负责相关数据获取 Web浏览器端:跟本地应用程序不是处于同一个网络,请求发起方 中转服务(重点):中转服务集成认证功能,必须经

上周热点回顾(2.12-2.18)

热点随笔: · PowerShell 并行执行任务(sparkdev)· IT连创业系列:年终回顾录!(路过秋天)· 国外程序员陋习,写在农历狗年前(麦克*堂)· 一个开源的强类型客户端(.NET 中的 Open Fegin)— Rabbit Go(KAnts)· 万类之父——Object(OKevin)· 数学对于人类意味着什么(窗户)· 程序猿年终总结:我看了我的这7年(小八路)· 如何使用 Bootstrap 搭建更合理的 HTML 结构(叙帝利)· 发放春节福利,ASP.NET Core

JavaWeb学习随笔

Servlet学习随笔 1.HttpServlet init(ServletConfig)------Servlet生命周期中的初始方法,默认情况是服务器创建后第一次访问这个Servlet时调用,可以修改配置信息,使其在服务器一创建时就被调用; 修改配置信息的方法-----在web.xml的<servlet>下添加<load-on-startup>x<load-on-startup>,x是正整数,越小表示优先级越高 url路径的配置,完全匹配>目录匹配>(.

golang技术随笔(二)理解goroutine

进程.线程和协程 要理解什么是goroutine,我们先来看看进程.线程以及协程它们之间的区别,这能帮助我们更好的理解goroutine. 进程:分配完整独立的地址空间,拥有自己独立的堆和栈,既不共享堆,亦不共享栈,进程的切换只发生在内核态,由操作系统调度. 线程:和其它本进程的线程共享地址空间,拥有自己独立的栈和共享的堆,共享堆,不共享栈,线程的切换一般也由操作系统调度(标准线程是的). 协程:和线程类似,共享堆,不共享栈,协程的切换一般由程序员在代码中显式控制. 进程和线程的切换主要依赖于时

.net模拟登录博客园,使用httpWebRequest登录并发布随笔文章

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.IO; using System.Runtime.InteropServices; using System.Diagnostics; namespace TestHttpWebRequest { class Program { [DllImport("winine

利用java.io.File类实现遍历本地磁盘上指定盘符或文件夹的所有的文件

2016-11-18 这是本人的第一篇随笔博客,纠结了半天还是选择自己学的时候比较用心的一些知识点上.利用java.io.File类指定本地的文件夹进行遍历所有的文件. package org.lxm.filedemo; import java.io.File; import java.util.Scanner; /* * 本程序是将某个盘的所有文件夹及其文件全部调出来的操作 */ public class FileAllDemo { public static void main(String

Python - 爬取博客园某一目录下的随笔 - 保存为docx

1 #coding:utf-8 2 import requests 3 from bs4 import BeautifulSoup 4 import MySQLdb 5 6 7 def get_html(url): 8 ''' 9 获取页面HTML源码,并返回 10 ''' 11 html = requests.get(url) 12 content = html.text.encode('utf-8') 13 return content 14 15 def get_blog_html_lis

重踏学习Java路上_Day21(字符流,io小结,案例)

1:字符流(掌握)    (1)字节流操作中文数据不是特别的方便,所以就出现了转换流.       转换流的作用就是把字节流转换字符流来使用.    (2)转换流其实是一个字符流        字符流 = 字节流 + 编码表    (3)编码表        A:就是由字符和对应的数值组成的一张表        B:常见的编码表            ASCII            ISO-8859-1            GB2312            GBK            G

Caffe入门随笔

Caffe入门随笔 分享一下自己入门机器学习的一些资料:(1)课程,最推荐Coursera上的Andrew NG的Machine Learning,最好注册课程,然后跟下来.其次是华盛顿大学的Machine Learning系列课程,一共有6门,包括毕业设计(2)书籍: 机器学习(周志华西瓜书).机器学习实战.统计学习方法(李航).集体智慧编程.数学之美(吴军)(3)微博@余凯_西二旗民工:@老师木:@梁斌penny:@张栋_机器学习:@邓侃:@大数据皮东:@djvu9:@陈天奇怪(4)知乎@贾