文件IO:
文件: 对于操作系统而言 所有东东都是一种文件, 屏幕 键盘 exe程序 word 等都是文件
今天学习的文件主要是能够使用记事本打开的 程序语言编写的 .cs .c .cpp .java .js .txt .ini .bat
.txt
IO:
input: 输入 写文件
output: 输出 读文件
System.IO 包含了针对文件操作的一些class
读文件: StreamReader: 这是一个class 针对能够使用记事本打开的文件类型
构造函数: 构造函数是一种特殊的方法 名字和class相同, 没有返回值类型(非void) 在new的时候被调用, 目的就是开辟内存空间
构造函数: 1. path 2. 编码格式
path: 路径 C:/Demo/Test/1.cs
UTF8
reader.ReadLine(); 读取文本中一行数据 若没有读取到数据就意味着该文本是空/读完了
上述方法的返回值类型为字符串类型
***写文件 ***StreamWriter:
构造函数:
1. path
2. UTF8
3. 是否追加
writer.WriteLine(string writeinfo,true,Encoding.UTF8); true 表示追加,false表示覆盖
FileStream 是一个class 针对文件所有类型的文件 这个东东的主要特性是以字节为单位进行操作的
开打 --> 读文件
创建文件/追加 --> 写文件
代码展示
namespace 读取文件
{
class Program
{
static void Main(string[] args)
{
//在进行文件读写的时候, 我们使用using这个东东 可以帮助我们关闭文件 比较便利 固定格式
string filePath = @"D:\LLWH\work\day03\笔记\笔记.txt"; // 定义路径
string tmpInfo = string.Empty; // 临时读取的内容
using (StreamReader reader = new StreamReader(filePath,Encoding.UTF8))
{
//固定格式
while ((tmpInfo = reader.ReadLine()) != null)
{
//读取的一行数据
Console.WriteLine(tmpInfo);
}
}
}
}
}
namespace 加密
{
class Program
{
static void Main(string[] args)
{
//定义一个路径
string filePath = Console.ReadLine();
Console.WriteLine("请耐心等待程序完成");
//读文件固定格式
FileStream readFileStream = new FileStream(filePath,FileMode.Open,FileAccess.Read);
//定义一个字节数组 长度就是改文件的总长度
byte[] bytes = new byte[readFileStream.Length];
//存储的字节数组 偏移量 最多读取多少个
readFileStream.Read(bytes, 0, bytes.Length);
//关闭该文件
readFileStream.Close();
//加密过程
for (int i = 0; i < bytes.Length; i++)
{
++bytes[i];
}
//弄一个新的文件
string newPath = filePath.Insert(filePath.IndexOf('.'), "_copy");
//写文件的固定格式
FileStream writeFileStream = new FileStream(newPath,FileMode.Create,FileAccess.Write);
//将加密之后的数据写入新的文件
writeFileStream.Write(bytes,0,bytes.Length);
//关闭
writeFileStream.Close();
Console.WriteLine("操作完成");
}
}
}