C# 文件流 导入 导出
流是二进制字节序列的面向对象的一个抽象概念,.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# 文件流 导入 导出相关推荐
- Java:实现文件批量导入导出实践(兼容xls,xlsx)
点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:小卖铺的老爷爷 cnblogs.com/laoyeye/p/6938889.html ...
- Java实现文件批量导入导出实例(兼容xls,xlsx)
<link href="https://csdnimg.cn/public/favicon.ico" rel="SHORTCUT ICON"> &l ...
- js文件流,导出txt
js文件流,导出txt var content = "file content!"; var data = new Blob([content],{type:"text/ ...
- canpro脚本_AE/PR脚本-文件自动导入导出 Aescripts Pro IO v2.15.8
AE/PR脚本-文件自动导入导出 Aescripts Pro IO v2.15.8 自动化导入和导出:.适用于After Effects和Premiere Pro的Pro IO是一种一站式解决方案,可 ...
- ABAP 程序完成EXCEL文件的导入导出,OLE技术的应用
今天主要学习了使用微软的OLE技术,用ABAP程序完成excel文件的导入导出处理. (一)常用的OLE函数: CALL METHOD , CALL OBJECT , FREE OBJECT ...
- 3Dmax中obj文件的导入导出(以3Dmax2017版为例)
3Dmax中obj文件的导入导出 1.文件的导入 打开3Dmax,点击左上角的图标,选择导入. 选择要导入的obj文件,导入,完成. 文件的导出 点击左上角图标,选择导出,导出选定对象. 选择要导出的 ...
- 数据库dmp文件的导入导出
数据库dmp文件的导入导出 数据泵的使用 –sqlplus下执行 Create directory TEST as 'd:\test'; Grant read,write on directory T ...
- easyexcel导入时读不到数据_SpringBoot中EasyExcel实现Excel文件的导入导出
前言 在我们日常的开发过程中经常会使用Excel文件的形式来批量地上传下载系统数据,我们最常用的工具是Apache poi,但是如果数据到底上百万时,将会造成内存溢出的问题,那么我们怎么去实现百万数据 ...
- mysql数据库导入sql文件Mysql导入导出.sql文件的方法
mysql数据库导入sql文件:Mysql导入导出.sql文件的方法 mysql导入sql文件:Mysql导入导出.sql文件 步骤如下: 一.MYSQL的命令行模式的设置: 桌面->我的电脑- ...
最新文章
- 网站服务器日志都有哪些,网站服务器日志在哪里看?
- springboot util 测试类怎么写_SpringBoot入门建站全系列(九)文件上传功能与下载方式...
- Linux下如何避免误操作执行 rm
- sql并发 锁 优化思路_并发优化–减少锁粒度
- 用python turtle库画正方形_用Python Turtle画一个正方形
- html加粗字体打印失效_论文格式要求及字体大小
- 【转】健康,运动,习惯
- Swift - 高级运算符介绍
- 清除Tomcat日志
- AB罗克韦尔PLC 、变频器、电源,软启武汉峥嵘
- 无线路由dns服务器地址,tplink无线路由器怎么设置DNS服务器地址
- Sticky footer布局
- 2022R2移动式压力容器充装考题模拟考试平台操作
- RestTemplate的用法
- 我的 Python 全栈开发自学笔记
- 日语初级语法复习整合 Day 11 - Day 15 Summary
- Python 3 内置函数 tuple( )
- 系统接口对接:(2)
- linux教程超详细,linux搭建node超详细教程
- SVN使用教程(Linux)