必威体育Betway必威体育官网
当前位置:首页 > IT技术

C#中File和FileStream的用法

时间:2019-08-15 20:14:39来源:IT技术作者:seo实验室小编阅读:51次「手机版」
 

filestream

在近期的工作过程中发现自己的基础比较薄弱,所以最近在恶补基础知识。下面就对我所学习的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);
  
                }
             }
                
            }

因为刚开始学习所以有些不足,希望各位大佬可以指正。

相关阅读

C#中的Func委托

Func委托 Func委托引用了一个带有一个返回值的方法,它可以传递0或者多到16个参数类型,和一个返回类型。 Func<out TResult> Func<i

CreateFileMapping实现的共享内存及用法

在32位的Windows系统中,每一个进程都有权访问他自己的4GB(232=4294967296)平面地址空间,没有段,没有选择符,没有near和far指针,没有near

Makefile 使用总结

Makefile 使用总结 1. Makefile 简介 Makefile 是和 make 命令一起配合使用的. 很多大型项目的编译都是通过 Makefile 来组织的,

C# ORM NHibernate实践

前阵有个应用程序项目需要连接数据库mysql,想着单纯写sql语句做CRUD太麻烦了,就想起了ORM技术,简单点说就是把数据库的表映射成对象,

聊聊c#与Python以及IronPython

简单说说这个意义。做了很久的c#,突然发现Python火了。就看看,估计这篇博文有点长,有点长,尽量包括主要的东西,还有点杂,浏览吧,选择自

分享到:

栏目导航

推荐阅读

热门阅读