C#IO操作

【System.IO命名空间】

分类:

(1)用于 I/O 文件的类:

Directory

DirectoryInfo

File

FileInfo

FileStream

(2)用于从流读取和写入流的类:

StreamReader

StreamWriter

BinaryReader

BinaryWriter

通用 I/O 流类

BufferedStream

【导入System.IO】

DirectoryInfo:用于复制移动重命名创建删除目录的【实例方法】

实例方法需要创建对象

DirectoryInfo info=new DirectoryInfo(path);

info.方法;

Directory:用于复制移动重命名创建删除目录的【静态方法】

静态方法直接使用类名.方法调用

String path = "E:\\C#"; //文件地址

Directory.Exists(path); //判断目录是否存在

Directory.CreateDirectory(path); //创建目录

Directory.GetCreationTime(path).ToLongDateString();//获取目录创建的时间

String[]fileNames = Directory.GetFiles(path);//获取子文件

String[] directoryNames = Directory.GetDirectories(path);//获取子目录

Directory.Delete(path); //目录删除

Directory.GetFileSystemEntries(path); //返回指定目录的所有子目录和文件

Directory.GetCurrentDirectory();//返回程序当前工作的目录

Directory.GetLastAccessTime(path);//返回最后访问时间

Directory.GetLastWriteTime(path);//返回最后修改时间

Directory.GetParent(path);//返回指定目录的父目录

Directory.Move(要移动的目录,指定目录);//将目录移动到指定位置

Directory.SetCreationTime(path,日期);//设置创建日期

Directory.SetCurrentDirectory(path);//将工作目录设置为指定目录

Directory.SetLastWriteTime(path,时间);//设置最后修改时间

FileInfo :用于创建,复制,删除,移动文件的实例方法

实例方法需要创建对象

FileInfo info=new FileInfo(path);

info.方法;

File:用于创建,复制,删除,移动文件的静态方法

静态方法直接使用类名.方法调用

File.方法

File.AppendAllText(path,"",Encoding.Default);//将指定字符串追加到文件中若文件不存在则创建文件

File.WriteAllText(path,"",Encoding.Default);//创建新文件并写入内容,然后关闭该文件,目标文件已存在时覆盖该文件

String [] a=File.ReadAllLines(path,Encoding.Default);//打开文件并将所有行读入一个字符串,然后关闭该文件

File.OpenRead(path);//打开指定文件进行读取

【Encoding.Default】:编码方式

FileStream(文件流) :主要用于使用二进制方式读写文件数据,可读取任何文件

创建FileStream对象

FileStream stream=new FileStream(文件路径,FileMode.Append,FileAccess.ReadWrite,FileShare.Non

e);//创建FileStream对象

【FileMode】:指定系统打开文件的方式FileStream

(CreateNew创建新文件,Creat创建新文件,如果存在则覆盖,Open打开现有文件,OpenOrcreate打开文件,不存在则创建,Append打开文件查找到文件尾,Truncate打开文件并清除内容)

【FileAccess】:

指定文件的访问方式(Read只读,write只写,readwrite读写)

【FileShare】:

控制其他FileStream对象对此文件的访问权(none不共享,read允许随后打开文件并读取,write允许写入,readwrite允许读写)

例:

FileStream Reader=new FileStream(path,FileMode.Append,FileAccess.ReadWrite,FileShare.None);//创建FileStream对象

//读取数据

byte[] aa=new byte[Reader.Length];

Reader.Read(aa,0,aa.Length);//将文件中数据读入byte数组aa

Reader.Flush();

Reader.Close();

//写入数据

FileStream Write=new FileStream(path,FileMode.Append,FileAccess.ReadWrite,FileShare.None);//创建FileStream对象

Write.Write(aa,0,aa.Length);//从aa中取出数据写入文件

Write.Flush();

Write.Close();

Reader.ReadByte();//读取一个字节

reader.Position = 6;//绝对定位

Reader.Seek(0,SeekOrigin.Begin);相对定位

Write.WriteByte(字节);//将一个字节写入当前流

===========================================================BufferedStream:为Stream对象提供缓存,减少IO次数,提高读写效率

BufferedStream reader = new BufferedStream(Stream对象);

===========================================================StreamReader:以一种特定的编码从字节流中读取字符

===========================================================StreamWriter:以一种特定的编码向字节流中写入字符

//创建流

先创建Filestream对象

FileStream fose=new FileStream("e:\\",FileMode.Append,FileAccess.Read,FileShare.Delete);

根据FileStream对象创建StreamReader或StreamWriter对象

StreamReader reader=new StreamReader(fose,Encoding.Default);

FileStream fos=new FileStream(path,FileMode.Create,FileAccess.Read,FileShare.Inheritable);

StreamWriter write=new StreamWriter(fos,Encoding.Default);

int data;

data=reader.Read();//一个一个读取

char[] c=new char[1];

reader.ReadBlock(c,0,c.Length);//将读取的字符放入char数组

String qq=reader.ReadLine();//读取一行数据

reader.ReadToEnd();//从当前位置读到结尾

writer.Write((char)data);//写入Char型数据

writer.Write(datas, 0, len);//写入数组中的指定元素

writer.WriteLine(datas);//写入后换行

write.Write(数据类型);//写入数据,可以是任何基本数据类型

r

eader.BaseStream.Position:绝对定位

reader.BaseStream.Seek:相对定位

===========================================================BinaryReader:以一种特定的编码从字节流中读取基本数据类型数据

BinaryWriter:以一种特定的编码向字节流中写入基本数据类型数据

创建流

先创建Filestream对象

FileStream fos = new FileStream("E:\\C#\\stu.txt", FileMode.Create, FileAccess.Write);

根据FileStream对象创建 BinaryWriter或者BinaryReader

BinaryWriter writer = new BinaryWriter(fos, Encoding.Default);

//写入数据

writer.Write(name);

writer.Write(age);

writer.Write(sex);

writer.Write(score);

writer.Close();

fos.Close();

FileStream fis = new FileStream("E:\\C#\\stu.txt", FileMode.Open, FileAccess.Read);

BinaryReader reader = new BinaryReader(fis, Encoding.Default);

//读取数据

reader.Readxxx();任意数据类型

reader.BaseStream.Position = 7;//绝对定位

Console.WriteLine(reader.ReadInt32());//

reader.BaseStream.Position = 0;

Console.WriteLine(reader.ReadString());

reader.Close();

fis.Close();

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值