文件流
FileStream  可读可写  大文件  释放
StreamReader 读取   释放
StreamWriter 写入   释放
using 中释放
File 可读可写  小文件 操作文件,静态类,对文件整体操作。拷贝、删除、剪切等。

Path类 针对字符串进行操作

文件操作

重点讲解FileStream、StreamReader、StreamWriter、File、Directory、Path这几个类。
FileStream,通过大文件拷贝的案例。

string str = "今天明天后天";
            //字符串转字节数组
            byte[] bytes = System.Text.Encoding.UTF8.GetBytes(str);
            //字节数组转字符串
            string newStr = System.Text.Encoding.UTF8.GetString(bytes);
===============================================
//文件流的写
            //创建文件流
            FileStream fs = new FileStream("fist.txt", FileMode.Create, FileAccess.Write);
            //写入内容
            string msg = “锄禾日当午,地雷埋下土,老马走过去,炸成二百五";
            byte[] bytes = System.Text.Encoding.UTF8.GetBytes(msg);
            fs.Write(bytes,0,bytes.Length);
            //清空缓冲区,关闭文件流,释放资源
            fs.Flush();
            fs.Close();
            fs.Dispose();
            Console.WriteLine("哦买雷电嘎嘎闹,小杨太帅了!!!");
===========================================================
using (FileStream fs=new FileStream("fist.txt", FileMode.Open, FileAccess.Read))
            {
                byte[]bytes=new byte[fs.Length];
                fs.Read(bytes,0,bytes.Length);
                string msg = System.Text.Encoding.UTF8.GetString(bytes);
                Console.WriteLine(msg);
            }
=========================================================复制文件

using (FileStream fsRead=new FileStream(@"E:\搜狗下载\net\MVC\第一天.zip", FileMode.Open,FileAccess.Read))
            {
                //写的流
                using (FileStream fsWrite=new FileStream(@"E:\搜狗下载\1.zip", FileMode.Create,FileAccess.Write))
                {
                    //每次读取的大小是5M
                    byte[] buffer=new byte[1024*1024*5];
                    //实际(真正读取到的大小)
                    int r = fsRead.Read(buffer,0, buffer.Length);
                    while (r>0)
                    {
                        //写入
                        fsWrite.Write(buffer, 0, r);
                        Console.WriteLine("0.0");
                        //再读取
                        r = fsRead.Read(buffer,0,r);
                    }
                }
            }

===========================================================
 using (StreamReader sr=new StreamReader("",Encoding.Default))
            {
                while (sr.EndOfStream)
                {
                    Console.WriteLine(sr.ReadLine());
                }
                string line = null;
                while ((line=sr.ReadLine())!=null)
                {
                    Console.WriteLine(line);
                }
            }

========================================================
 using (StreamWriter sw=new StreamWriter("",true,Encoding.UTF8))
            {
                for (int i = 0; i < 100; i++)
                {
                    sw.WriteLine(i);
                }
            }

===============================================工资翻倍案例

马大哈|6000
宋江|17400
马大姐|8000
宋子文|16400    //文本文件
            using (StreamReader reader=new StreamReader("gz.txt",Encoding.Default))
            {
                using (StreamWriter writer=new StreamWriter("gz1.txt",false,Encoding.Default))
                {
                    string line;
                    while ((line = reader.ReadLine())!=null)
                    {
                        //把每一行的|切掉
                        string[] salary = line.Split(new char[] {'|'}, StringSplitOptions.RemoveEmptyEntries);
                        string txt = string.Format("{0}|{1}", salary[0], Convert.ToInt32(salary[1])*2);

writer.WriteLine(txt);
                    }
                }
            }
              
           Console.ReadKey();

File、Directory、Path

Path//对文件或目录的路径进行操作(很方便)【字符串】
string ChangeExtension(string path, string extension) (*)
修改文件的后缀,“修改”支持字符串层面的,没有真的给文件改名
string s = Path.ChangeExtension(@"C:\temp\F3.png", "jpg")
string Combine(string path1, string path2)
将两个路径合成一个路径,比用+好,可以方便解决不加斜线的问题,自动处理路径分隔符的问题
string s = Path.Combine(@"c:\temp","a.jpg") 
string GetDirectoryName(string path) (*)
得到文件的路径名。Path.GetDirectoryName(@"c:\temp\a.jpg")
string GetExtension(string path) 得到文件的扩展名
string GetFileName(string path) 得到文件路径的文件名部分
string GetFileNameWithoutExtension(string path) 得到去除扩展名的文件名
string GetFullPath(string path) 得到文件的全路径。可以根据相对路径获得绝对路径。
string GetTempFileName()  得到一个唯一的临时文件名(*)
string GetTempPath() 得到临时文件夹的路径(*)

Directory //操作目录(文件夹),静态类。

void Delete(string path, bool recursive)     删除目录, recursive表示是否递归删除,如果recursive为false则只能删除空目录
bool Exists(string path)      判断目录是否存在
string[] GetDirectories(string path)  得到一个目录下的子目录
string[] GetDirectories(string path, string searchPattern, SearchOption searchOption)    通配符查找目录下的子目录,可以搜索到隐藏文件。 
static string[] GetFiles(string path)  得到一个目录下的文件
string[] GetFiles(string path, string searchPattern, SearchOption searchOption)   通配符查找目录下的文件
DirectoryInfo GetParent(string path)  得到目录的父目录
move()  //移动、剪切。只能在同一个磁盘中。目录没有Copy方法。可以使用Move()方法实现重命名。
create()

C#基础精华04(文件流,文件操作,File、Directory、Path,Directory)的更多相关文章

  1. SQL Server 文件流文件组

    背景: 文件流通过在文件系统上存储blob数据文件将数据库引擎与ntfs文件集成在一起,使用t-sql和win32访问数据. 文件流使用windows系统来缓存数据,有助于在减少文件流数据对sql s ...

  2. 文件I/O操作——File类

    在java.io包之中,File类是唯一一个与文件本身有关的操作类.它定义了一些与平台无关的方法来操作文件,通过调用File类提供的各种方法,能够完成创建.删除文件,重命名文件,判断文件的读写权限及文 ...

  3. 文件及文件夹操作- File类、Directory 类、FileInfo 类、DirectoryInfo 类

    文件及文件夹操作: C/S:WinForm可以操作客户端文件 Client ServerB/S:Brower Server 命名空间:using system .IO; 1. File类: 创建:Fi ...

  4. C# 文件流相关操作

    二进制转换成图片: MemoryStream ms = new MemoryStream(bytes); ms.Position = ; Image img = Image.FromStream(ms ...

  5. python 基础篇 04(列表 元组 常规操作)

    本节主要内容:1. 列表2. 列表的增删改查3. 列表的嵌套4. 元组和元组嵌套5. range 一. 列表1.1 列表的介绍列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型. ...

  6. Java基础教程:IO流与文件基础

    Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...

  7. 【基础巩固】文件流读写、大文件移动 FileStream StreamWriter File Path Directory/ ,m资料管理器(递归)

    C#获取文件名 扩展名 string fullPath = @"d:\test\default.avi"; string filename = Path.GetFileName(f ...

  8. C#IO流文件操作

    文件流 创建文件流 读写文件的第一步就是创建文件流,流是一个用于数据传输的个对象,它是FileStream类型,在创建一个文件流是需要在他的构造中指定参数 语法: FileStream 文件流对象=n ...

  9. LInux文件基础知识和文件目录操作(二)文件I/O操作

    1.文件I/O操作分为两部分来讲解: 第一部分是非缓冲文件操作,这种操作适合于比较小规模文件的读写和对实时性要求很高的设备的数据通信,这类操作是系统调用提供的: 第二部分是缓冲文件操作,所面向的则是大 ...

随机推荐

  1. js笔记——浏览器及版本判断

    判断IE浏览器的时候注意需要做两个判断 一个是msie 一个是Edge function myBrowser(){ var userAgent = navigator.userAgent; //取得浏 ...

  2. 打开shpfile,mdb,sde工作空间

    打开shapefile工作空间: ESRI.ArcGIS.Geodatabase.IWorkspaceFactory wsf = new ESRI.ArcGIS.DataSourcesFile.Sha ...

  3. Windows下Android模拟环境的搭建

  4. [EAP]将hostapd作为radius服务器搭建EAP认证环境

    文章主要由以下几部分组成: 0.概念理解: WPA/WPA2,EAP,IEEE, 802.11i, WiFi联盟, 802.1x 1.编译hostapd 2.配置hostapd的conf文件 3.外接 ...

  5. Linux 服务器如何禁止 ping 以及开启 ping

    Linux 默认是允许 ping 响应的,也就是说 ping 是开启的,但 ping 有可能是网络攻击的开始之处,所以关闭 ping 可以提高服务器的安全系数.系统是否允许 ping 由2个因素决定的 ...

  6. dell inspiorn 14vr 1616b ubuntu 无线网卡的问题

    找到两个解决方法: 1 找 网卡驱动下载: 用命令 以下 from :http://zhidao.baidu.com/link?url=k6QNIdJlbRyZJSEW1cVUs_1p4Jv-73c8 ...

  7. JS 判断一个字符串是否包含在一个数组中

    var arr = ["白色", "黑色", "红色", "粉色"]; var sel = "黑色" ...

  8. android 注销

    1.在个人中心退出系统MainActivity 2.清空保存的登录数据 3.打开登录LoginActivity 方法: SharedPreferencesManager.getInstance(mCo ...

  9. 移动APP学习笔记一

    登录 ●登录用户名和密码错误时,界面有提示信息 ●用户主动退出登录后,下次启动APP时,应该进入登录界面 ●对于支持自动登录的APP,数据交换时  ,是否能自动登录成功且数据库操作无误 ●密码更改后, ...

  10. apache本地和局域网访问设置

    apache本地和局域网访问设置 最近做项目需要同事ajax发项目给我,因为是测试环境,所以需要能访问我的服务器.我服务器直接用的wampserver.因为没有接触过,所以百度了一下,都是没有成功,后 ...