• FlieStream


    using System;
    using System.IO;
    using System.Text;
    
    namespace _05FileStream
    {
        internal class Program
        {
            private static void Main(string[] args)
            {
                //FlieStream  操作字节的
    
                //读取操作
                //1、创建FileStream对象
                var fs = new FileStream(@"C:UserssoDesktop新建文本文档.txt", FileMode.Open, FileAccess.Read);
                var buffer = new byte[1024];
                //2、fs读取到的东西放到字节数组中(可以限定每次读取多少)如果一次无法满足可以使用循环
                //返回本次实际读取到的有效字节数
                var n = fs.Read(buffer, 0, buffer.Length);
                //3、将字节数组中每一个元素按照制定的编码格式解码成字符串
                var str = Encoding.Default.GetString(buffer, 0, n);
                //4、关闭文件流   释放流占用的资源
                fs.Close();
                fs.Dispose();
                Console.WriteLine(str);
                //*******************************
                //为了避免忘记释放资源,可以使用using
                using ( /*创建FileStream对象整个语句放入*/)
                {
                    //........ 
                }
                //*******************************
    
                //写入操作
                var buffer2 = new byte[1024];
                //1、将字符串编码成字节数组
                buffer2 = Encoding.Default.GetBytes(str);
                //2、创建FileStream对象
                var fw = new FileStream(@"C:UserssoDesktop
    ewnew.txt", FileMode.Create, FileAccess.ReadWrite);
                //3、fw将字节数组写入到文件中(可以限定每次写入多少)
                fw.Write(buffer2, 0, buffer2.Length);
                //4、关闭文件流   释放流占用的资源
                fw.Close();
                fw.Dispose();
                Console.WriteLine("文件创建完成");
                Console.ReadKey();
                //StreamReader  StreamWriter  操作字符的
            }
        }
    }
    

      //同时读取和写入  copy示例  循环读取

    public static void CopyFile(string source, string target)
            { 
                using (FileStream fs = new FileStream(source, FileMode.Open, FileAccess.Read))
                {
                    using (FileStream fw = new FileStream(target, FileMode.OpenOrCreate, FileAccess.Write))
                    {
                        byte[] buffer = new byte[1024*1024*5];
                        //因为文件可能会比较大,所以我们在读取的时候应该通过一个循环去读取
                        while (true)
                        {
                            //返回本次读取实际读取到的字节数
                            int n = fs.Read(buffer, 0, buffer.Length);
                            //如果返回一个0,也就意味着什么都没有读取到,读取完了
                            if (n == 0) 
                            {
                                break;
                            }
                            fw.Write(buffer, 0, n);
                        }
                    }
                }
            }
    

      

  • 相关阅读:
    [JavaScript-PHP]无刷新Ajax+POST使用阿里云短信平台发送短信
    [PHP]开源php拼音库的使用方法
    redis远程连接不上解决办法
    ServiceStack.Redis连接阿里云redis服务时使用连接池出现的(密码验证)问题
    .Net使用Redis详解之ServiceStack.Redis
    Windows下Redis的使用
    axios文件流下载(excel文件)
    生成线上用https证书,支持通配符和多域名,初学Let's Encrypt用于IIS,纯本地手动
    什么是TXT记录?如何设置、检测TXT记录
    v-cloak 的用法
  • 原文地址:https://www.cnblogs.com/souliid/p/5650482.html
Copyright © 2020-2023  润新知