using System.IO;StreamReader/Writer FileStream

文件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("操作完成");
        }
    }
}

猜你喜欢

转载自blog.csdn.net/wang18236618195/article/details/82734024