ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C#-IO读写

2022-08-14 00:31:41  阅读:165  来源: 互联网

标签:文件 字节 C# 读写 文件夹 IO Test txt byteList


文件夹/文件 的创建和删除

// 创建一个文件夹
Directory.CreateDirectory(@"E:\Test");
// 删除指定文件夹(当前文件夹必须为空)
Directory.Delete(@"E:\Test");
// 删除指定文件夹(即使要删除的文件夹不为空,也会删除)
Directory.Delete(@"E:\Test", true);
// 获取文件夹下的文件
Directory.GetFiles(@"E:\Test");
// 获得文件夹下的文件夹
Directory.GetDirectories(@"E:\Test");
// 获得文件夹下的所有文件夹,包含子文件夹的文件夹
Directory.GetDirectories(@"E:\Test", "*.*", SearchOption.AllDirectories);
// 获得文件夹下的所有文件,包含子文件下的文件
Directory.GetFiles(@"E:\Test","*.*",SearchOption.AllDirectories);
// 创建文件
File.Create(@"E:\Test\Text.txt");
// 删除文件
File.Delete(@"E:\Test\Text.txt");
// 获取文件夹信息,当前文件夹的信息都保存在Info中
DirectoryInfo info = new DirectoryInfo(@"E:\Test");
// 获得文件信息,当前文件的信息都保存在file中
FileInfo file = new FileInfo(@"E:\Test\Text.txt");

字节数组和字符串之间的转换

string str = "Hello World";
// 将字符串转换成字节数组
byte[] byteList = System.Text.Encoding.UTF8.GetBytes(str);
// 将字节数组转换成字符串
string str2 = System.Text.Encoding.UTF8.GetString(byteList); 

文件的读写

方法一:注意需要手动将字节流断开

// 创建一个文件夹
Directory.CreateDirectory(@"E:\Test");
// 创建一个文本,并返回一个字节流方便将文本写入
FileStream fs = File.Create(@"E:\Test\Test.txt");
// 要写入的字符串
string str = "Hello World";
// 将字符串转换成计算机能够识别的字节数组
byte[] byteList = System.Text.Encoding.UTF8.GetBytes(str);
// 将字节数组写入字节流中(写入的字节流,从什么开始,到什么结束);
fs.Write(byteList,0,byteList.Length);
// 将字节流断开
fs.Close();

// 获得指定路径的文件流
FileStream fw = new FileStream(@"E:\Test\Test.txt",FileMode.OpenOrCreate);
// 创建一个数据缓冲区,用于存放从文件中获得的字节数据(必须要比读取的文件大,但不能太大浪费性能,酌情处理);
byte[] byteList2 = new byte[1024];
// 通过文件流进行读取
fw.Read(byteList2,0,byteList2.Length);
// 将字节数组转换成字符串
string str2 = System.Text.Encoding.UTF8.GetString(byteList2);

方法二:using执行完毕字节流将会自动断开,无需手动操作

// 创建一个文件夹
Directory.CreateDirectory(@"E:\Test");
// 创建一个文本,并返回一个字节流方便将文本写入
using (FileStream fs = File.Create(@"E:\Test\Test.txt")) {
    // 要写入的字符串
    string str = "Hello World";
    // 将字符串转换成计算机能够识别的字节数组
    byte[] byteList = System.Text.Encoding.UTF8.GetBytes(str);
    // 将字节数组写入字节流中(写入的字节流,从什么开始,到什么结束);
    fs.Write(byteList, 0, byteList.Length);
}

// 创建一个文件流用于已有文件中内容的追加
using (FileStream fs = new FileStream(@"E:\Test\Test.txt", FileMode.Append)) {
    // 要写入的字符串
    string str = "Hello World";
    // 将字符串转换成计算机能够识别的字节数组
    byte[] byteList = System.Text.Encoding.UTF8.GetBytes(str);
    // 将字节数组写入字节流中(写入的字节流,从什么开始,到什么结束);
    fs.Write(byteList, 0, byteList.Length);
}

// 获得指定路径的文件流
using (FileStream fw = new FileStream(@"E:\Test\Test.txt", FileMode.OpenOrCreate)) {
    // 创建一个数据缓冲区,用于存放从文件中获得的字节数据(必须要比读取的文件大,但不能太大浪费性能,酌情处理);
    byte[] byteList2 = new byte[1024];
    // 通过文件流进行读取
    fw.Read(byteList2, 0, byteList2.Length);
    // 将字节数组转换成字符串
    string str2 = System.Text.Encoding.UTF8.GetString(byteList2);                
}

方法三:不通过文件流直接向文件中写文本(直接对其原文本进行覆盖)

// 直接向文件中写文本
File.WriteAllText(@"E:\Test\Test.txt","AAAAAAAA");
// 将文本转换成字节数组并直接写入文件
string str3 = "BBBBB";
byte[] byteList3 = System.Text.Encoding.UTF8.GetBytes(str3);
File.WriteAllBytes(@"E:\Test\Test.txt",byteList3);

// 读取文件中的文本
File.ReadAllText(@"E:\Test\Test.txt");
// 通过字节流读取文件中的文本(有时文本中存储的不是字符串格式)
byte[]byteList4 = File.ReadAllBytes(@"E:\Test\Test.txt");

标签:文件,字节,C#,读写,文件夹,IO,Test,txt,byteList
来源: https://www.cnblogs.com/wuzhongke/p/16583738.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有