C#中File和FileStream的用法
原创 忆汐辰 发布于2019-04-10 11:34:23 阅读数 5841 收藏
展开

在近期的工作过程中发现自己的基础比较薄弱,所以最近在恶补基础知识。下面就对我所学习的File类和FileStream进行简单的总结。
1.首先先介绍File类和FileStream文件流

1.1  File类,是一个静态类,支持对文件的基本操作,包括创建,拷贝,移动,删除和打开一个文件。File类方法的参量很多时候都是路径path。主要提供有关文件的各种操作,在使用时需要引用System.IO命名空间。
 1.2  FileStream文件流 只能处理原始字节(raw byte)。FileStream 类可以用于任何数据文件,而不仅仅是文本文件。FileStream 对象可以用于读取诸如图像和声音的文件,FileStream读取出来的是字节数组,然后通过编码转换将字节数组转换成字符串。

1.3 区别:file:是一个文件的类,对文件进行操作的;filestream:文件流.对txt,xml等文件写入内容的时候需要使用的一个工具.打个形象的比喻.file是笔记本,需要filestream的这个笔才能写.
2.代码部分

2.1 File类创建Txt

string path = @"C:\Users\Administrator\Desktop\1.txt";
       File.Open(path, FileMode.OpenOrCreate);

2.2 File类Txt拼接内容

List<string> users = new List<string>();
                users.Add("张三|1000");
                users.Add("李四|10000");
                users.Add("王五|5000");
                users.Add("赵六|6000");
                 File.AppendAllLines(path, users, Encoding.Default);

2.3  File类字节形式读取txt文档

byte[] buttf = File.ReadAllBytes(path);
    string str = Encoding.Default.GetString(buttf, 0, buttf.Length);

2.4 File类实现txt员工工资加倍

string[] filestr = File.ReadAllLines(path, Encoding.Default);
       for (int i = 0; i < filestr.Length; i++)
         {
            string[] str = filestr[i].Split('|');
            filestr[i] = str[0] + "|" + (Convert.ToDouble(str[1]) * 2).ToString();
          }
         File.AppendAllLines(path, filestr, Encoding.Default);

2.5 File类常用方法

3.文件流

3.1文件流文字形式读取

byte[] bytsize = new byte[1024 * 1024 * 5];
                using (FileStream stream = new FileStream(path, FileMode.OpenOrCreate,FileAccess.ReadWrite))
                {
                    while (true)
                    {
                        int r = stream.Read(bytsize, 0, bytsize.Length);
                        //如果读取到的字节数为0,说明已到达文件结尾,则退出while循
                        if (r == 0)
                        {
                            break;
                        }
     
                        string str = Encoding.Default.GetString(bytsize, 0, r);
                        Console.WriteLine(str);
                    }
                }

3.2文件流文字形式写入

string str = "今天天气好晴朗,处处好风光";
                byte[] buttf = Encoding.Default.GetBytes(str);
                //文件流的写入
                using (FileStream fscreat = new FileStream(path, FileMode.Append, FileAccess.Write))
                {
     
                    fscreat.Write(buttf, 0, buttf.Length);
                }

3.3文件流视频形式复制

byte[] bytsize = new byte[1024 * 1024 * 5];       
    string videoPath = @"C:\Users\Administrator\Desktop\1、练习1-3.avi";
                string videoNewPath = @"C:\Users\Administrator\Desktop\1.avi";
                //创建读取流
                using (FileStream fsread=new FileStream(videoPath,FileMode.Open,FileAccess.Read))
                {
                    //创建写入流
                    using (FileStream fswrite=new FileStream(videoNewPath,FileMode.OpenOrCreate,FileAccess.Write))
                    {
                          while (true)
                      {
                        //返回实际读取到的字节
                        int r = fsread.Read(bytsize, 0, bytsize.Length);
                       //当字节位0的时候 证明已经读取结束
                        if(r==0){
                            break;
                        }
                        fswrite.Write(bytsize,0,r);
      
                    }
                 }
                    
                }

因为刚开始学习所以有些不足,希望各位大佬可以指正。
————————————————
版权声明:本文为CSDN博主「忆汐辰」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41209575/article/details/89178020

C#中File和FileStream的用法----转载的更多相关文章

  1. C# 中File和FileStream的用法

    原文:https://blog.csdn.net/qq_41209575/article/details/89178020 1.首先先介绍File类和FileStream文件流 1.1  File类, ...

  2. Java中File类的基本用法

    File类的基本用法 java.io.File类:代表文件和目录.在开发中,读取文件.生成文件.删除文件.修改文件的属性时经常会用到此类. File类的常用构造方法:public File(Strin ...

  3. asp.net中的<%%> <%#%> <%=%>形式的详细用法 (转载)

    博客分类: ASP.NET   一. <%%>这种格式实际上就是和asp的用法一样的,只是asp中里面是vbscript或者javascript代码,而在asp.net中是.net平台下支 ...

  4. File,FileInfo,FileStream,StreamReader的区别与用法

    概括的说,File,FileInfo,FileStream是用于文件 I/O 的类,StreamReader是用于从流读取和写入流的类,使用之前都需using System.IO. 先定义一个TXT文 ...

  5. Python中logging模块的基本用法

    在 PyCon 2018 上,Mario Corchero 介绍了在开发过程中如何更方便轻松地记录日志的流程. 整个演讲的内容包括: 为什么日志记录非常重要 日志记录的流程是怎样的 怎样来进行日志记录 ...

  6. 项目中使用Quartz集群分享--转载

    项目中使用Quartz集群分享--转载 在公司分享了Quartz,发布出来,希望大家讨论补充. CRM使用Quartz集群分享  一:CRM对定时任务的依赖与问题  二:什么是quartz,如何使用, ...

  7. 教程-Delphi中Spcomm使用属性及用法详解

    Delphi中Spcomm使用属性及用法详解 Delphi是一种具有 功能强大.简便易用和代码执行速度快等优点的可视化快速应用开发工具,它在构架企业信息系统方面发挥着越来越重要的作用,许多程序员愿意选 ...

  8. python中的formatter的详细用法

    今天抽空学习了一下python中的string service中的formatter的相关用法,主要是为了让自己的代码看起来更加和谐,因为很多java或者c语言过来的开发者都不怎么爱使用python的 ...

  9. UGUI中Event Trigger的基本用法

    UGUI中Event Trigger的基本用法 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chin ...

随机推荐

  1. 疯狂python(分享本不错的书)

    网盘链接:https://pan.baidu.com/s/1JDawVe8CT9BsHav5gBZS6Q    提取码vg8k

  2. 《MFC dialog中加入OpenGL窗体》

    <MFC dialog中加入OpenGL窗体> 最近学习了如何在MFC对话框程序中加入OpenGL窗体的方法,在这里将自己的实现过程归纳一下. 步骤零: 加入PictureControl控 ...

  3. 不要在mutation回调函数之外,修改vuex仓库里属性的状态

    [vuex] do not mutate vuex store state outside mutation handlers. import * as types from './mutation- ...

  4. 转载--php 7.2 安装 mcrypt 扩展

    在 php 官网下载 mcrypt 包,php 扩展官网 # wget http://pecl.php.net/get/mcrypt-1.0.1.tgz # tar xf mcrypt-1.0.1.t ...

  5. Python中的浅复制、深复制

    参考 https://docs.python.org/3/library/copy.html?highlight=copy%20copy#copy.copy https://en.wikipedia. ...

  6. SprintBoot学习(三)

    Thymeleaf模板引擎 1.thymeleaf是一个Java类库,,他是xml/xhtml/html5的模板引擎可以作为view层 2.themeleaf基本语法 引入thymeleaf < ...

  7. Python3中reduce和lambda的用法

    reduce() 函数将一个数据集合(iterable[, initializer])可以看出是包含了初始化数据的,且初始化数据位列第1位,即集合中的第1个元素)中的所有数据进行下列操作:先对集合中的 ...

  8. nyoj 67

    三角形面积 时间限制:3000 ms  |  内存限制:65535 KB 难度:2   描述 给你三个点,表示一个三角形的三个顶点,现你的任务是求出该三角形的面积   输入 每行是一组测试数据,有6个 ...

  9. liux vim 命令

    清除所有行 先 gg 再 dG

  10. 详解python的数字类型变量与其方法

    以下内容引自:https://www.jb51.net/article/97752.htm python数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间.下面 ...