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. github 创建gitlab每次提交都要输入账号

    在使用git提交代码到github的时候,经常要求输入用户名和密码,类似这种: 除了在 github 上添加 SSH key 网上有这么一种解决方法:使用git提交到github,每次都要输入用户名和 ...

  2. python中,字符串前的u,b,r字符的含义

    1.字符串前加 u 例:u"我是含有中文字符组成的字符串." 作用: 后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时 ...

  3. Hpple -- 一个 HTML 解析工具

    在开发中,大部分会使用 JSON 进行数据解析,偶尔会用到 HTML. 使用 Objective-C 解析 HTML 或者 XML,系统自带有两种方式一个是通过 libxml,一个是通过 NSXMLP ...

  4. PSP第二次总结

    项目计划总结: 姓名:李志强 日期:2017/12/06   听课 编程 阅读课本 准备考试     日总计 周日11.26               周一   100         100 周二 ...

  5. centos解决bash: telnet: command not found...&& telnet: connect to address 127.0.0.1: Connection refused拒绝连接

    检查telnet是否已安装: [root@hostuser src]# rpm -q telnet-serverpackage telnet-server is not installed[root@ ...

  6. LockSupport源码分析

    LockSupport提供park()和unpark()方法实现线程阻塞和唤醒.底层实现是通过sun.misc.Unsafe的park和unpark. 关于sun.misc.Unsafe的说明请参见我 ...

  7. 了解Web的相关知识

    一.WWW基础 WWW(world wide web, 万维网)是Internet上基于客户端/服务器体系结构的分布式多平台的超文本超媒体信息服务系统.它利用超文本(hypertext).超媒体(hy ...

  8. cookie、 Session Storage 、 Local Storage

    问题描述: 使用Ajax, Controller 传回来 JSON 字符串(待处理的信息) 在 Ajax 中实现页面跳转 window.location.href="/jsp/index.j ...

  9. Nodejs回调加超时限制两种实现方法

    odejs回调加超时限制两种实现方法 Nodejs下的IO操作都是异步的,有时候异步请求返回太慢,不想无限等待回调怎么办呢?我们可以给回调函数加一个超时限制,到一定时间还没有回调就表示失败,继续后面的 ...

  10. 常用的sql指令

    一,关于数据库中表的一些介绍 1,表的每一行表示关系的一个元组,又称记录: 2,表的每一列表示关系的一个字段,又称属性(例如:id.name.password........): 3,  表结构:表的 ...