流是二进制字节序列的面向对象的一个抽象概念,.NET 中利用流进行输入和输出操作,文件从广义上可以看成是保存在磁盘上的二进制字节,是按照一定格式存储的信息。
文件系统类的介绍 文件操作类大都在System.IO命名空间里。
FileSystemInfo类是任何文件系统类的基类;FileInfo与File表示文件系统中的文件;
DirectoryInfo与Directory表示文件系统中的文件夹;Path表示文件系统中的路径;
DriveInfo提供对有关驱动器的信息的访问。

FileStream与StreamWriter区别
 FileStream对象表示在磁盘或网络路径上指向文件的流。这个类提供了在文件中读写字节的方法,但经常使用StreamReader或 StreamWriter执行这些功能。这是因为FileStream类操作的是字节和字节数组,而Stream类操作的是字符数据。这是这两种类的一个重要区别,如果你是准备读取byte数据的话,用StreamReader读取然后用  System.Text.Encoding.Default.GetBytes转化的话,如下,则可能出现数据丢失的情况,如byte数据的个数不对等。因此操作byte数据时要用FileStream。 string textContent = fileStream.ReadToEnd();byte[] bytes = System.Text.Encoding.Default.GetBytes(textContent);
字符数据易于使用, 但是有些操作,比如随机文件访问(访问文件中间某点的数据),就必须由FileStream对象执行.

文件流引用:using System.IO;

//创建一个文件流:【读入流】,使用到的参数:文件的地址、打开文件的方式、文件的访问权限  
            using (FileStream fs = new FileStream(@"D:\file.txt", FileMode.Open, FileAccess.Read))
            {
                //创建一个内存【缓冲区】,用于存储读取到的文件流(字节块)
                byte[] buffer = new byte[fs.Length];
                //从【流】中读取【字节块】并将该数据写入给定缓冲区中
                fs.Read(buffer, 0, buffer.Length);
                //使用默认的字符编码集,将字节数组转换成字符串
                rtb_info.Text = Encoding.Default.GetString(buffer);
            }

//创建一个文件流:【输出流】,使用到的参数:文件的地址、打开文件的方式、文件的访问权限  
            using (FileStream fs = new FileStream(@"D:\file2.txt", FileMode.Create, FileAccess.Write))
            {
                string str = rtb_info.Text;
                //使用默认的字符编码集,将字符串转换成字节数组
                byte[] buffer = Encoding.Default.GetBytes(str);
                // 将字节块写入文件流
                fs.Write(buffer, 0, buffer.Length);
            }
            MessageBox.Show("写入完成");

StreamReader 写入  StreamWriter 导出

//获取应用程序的基目录
    string basePath = AppDomain.CurrentDomain.BaseDirectory;
//获取电脑上的所有驱动器信息
        DriveInfo[] drives = DriveInfo.GetDrives();

DirectoryInfo dir = dirve.RootDirectory;//获取驱动器的根目录信息
var files = dir.GetFiles();//获取文件夹中所有文件信息
var dirs = dir.GetDirectories();//获取文件夹中所有子目录信息

转载于:https://www.cnblogs.com/lujingBK/p/11234444.html

C# 文件流 导入 导出相关推荐

  1. Java:实现文件批量导入导出实践(兼容xls,xlsx)

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:小卖铺的老爷爷 cnblogs.com/laoyeye/p/6938889.html ...

  2. Java实现文件批量导入导出实例(兼容xls,xlsx)

    <link href="https://csdnimg.cn/public/favicon.ico" rel="SHORTCUT ICON"> &l ...

  3. js文件流,导出txt

    js文件流,导出txt var content = "file content!"; var data = new Blob([content],{type:"text/ ...

  4. canpro脚本_AE/PR脚本-文件自动导入导出 Aescripts Pro IO v2.15.8

    AE/PR脚本-文件自动导入导出 Aescripts Pro IO v2.15.8 自动化导入和导出:.适用于After Effects和Premiere Pro的Pro IO是一种一站式解决方案,可 ...

  5. ABAP 程序完成EXCEL文件的导入导出,OLE技术的应用

    今天主要学习了使用微软的OLE技术,用ABAP程序完成excel文件的导入导出处理. (一)常用的OLE函数: CALL METHOD  ,  CALL OBJECT ,   FREE OBJECT ...

  6. 3Dmax中obj文件的导入导出(以3Dmax2017版为例)

    3Dmax中obj文件的导入导出 1.文件的导入 打开3Dmax,点击左上角的图标,选择导入. 选择要导入的obj文件,导入,完成. 文件的导出 点击左上角图标,选择导出,导出选定对象. 选择要导出的 ...

  7. 数据库dmp文件的导入导出

    数据库dmp文件的导入导出 数据泵的使用 –sqlplus下执行 Create directory TEST as 'd:\test'; Grant read,write on directory T ...

  8. easyexcel导入时读不到数据_SpringBoot中EasyExcel实现Excel文件的导入导出

    前言 在我们日常的开发过程中经常会使用Excel文件的形式来批量地上传下载系统数据,我们最常用的工具是Apache poi,但是如果数据到底上百万时,将会造成内存溢出的问题,那么我们怎么去实现百万数据 ...

  9. mysql数据库导入sql文件Mysql导入导出.sql文件的方法

    mysql数据库导入sql文件:Mysql导入导出.sql文件的方法 mysql导入sql文件:Mysql导入导出.sql文件 步骤如下: 一.MYSQL的命令行模式的设置: 桌面->我的电脑- ...

最新文章

  1. 网站服务器日志都有哪些,网站服务器日志在哪里看?
  2. springboot util 测试类怎么写_SpringBoot入门建站全系列(九)文件上传功能与下载方式...
  3. Linux下如何避免误操作执行 rm
  4. sql并发 锁 优化思路_并发优化–减少锁粒度
  5. 用python turtle库画正方形_用Python Turtle画一个正方形
  6. html加粗字体打印失效_论文格式要求及字体大小
  7. 【转】健康,运动,习惯
  8. Swift - 高级运算符介绍
  9. 清除Tomcat日志
  10. AB罗克韦尔PLC 、变频器、电源,软启武汉峥嵘
  11. 无线路由dns服务器地址,tplink无线路由器怎么设置DNS服务器地址
  12. Sticky footer布局
  13. 2022R2移动式压力容器充装考题模拟考试平台操作
  14. RestTemplate的用法
  15. 我的 Python 全栈开发自学笔记
  16. 日语初级语法复习整合 Day 11 - Day 15 Summary
  17. Python 3 内置函数 tuple( )
  18. 系统接口对接:(2)
  19. linux教程超详细,linux搭建node超详细教程
  20. SVN使用教程(Linux)

热门文章

  1. 浅谈语音质量保障:如何测试 RTC 中的音频质量?
  2. 浅谈街霸的帧数据 (一):frame data
  3. Java_质数_两种解法(时间对比)
  4. 字符设备和块设备的区别
  5. ORACLE TEXT DATASTORE PREFERENCE(六)
  6. JavaWeb第三讲 JSP内置对象、基本动作指令、常见编译指令及四大作用域
  7. npm的镜像替换成淘宝
  8. vue全局路由守卫beforeEach
  9. c++入门之——const在函数名前面和函数后面的区别
  10. mysql数据库指定ip远程访问