欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#中File和FileStream的简单介绍和用法

程序员文章站 2022-03-23 12:40:37
前言在近期的工作过程中发现自己的基础比较薄弱,所以最近在恶补基础知识。下面就对我所学习的file类和filestream进行简单的总结。1.首先先介绍file类和filestream文件流1.1 fi...

前言

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

C#中File和FileStream的简单介绍和用法

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#中file和filestream的简单介绍和用法的文章就介绍到这了,更多相关c#中file和filestream用法内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!