文件流
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. CSS样式一

    样式 首先明确: HTML标签也有标签的属性,CSS中的样式也称作为属性,而且某些html中的属性与css中的属性同名,并且作用也相同,但是属于不同的技术. 尺寸样式: 几乎所有的标签有可以设置 wi ...

  2. Js 循环结构

    循环结构: for while do….while for循环 for(变量初始化;条件表达式;变量更新){ //循环体 } 说明: 第一步:变量初始化 只执行一次 第二步:判断表达式是否成立 成立则 ...

  3. 【转】Linux杀死fork产生的子进程的僵尸进程defunct

    僵尸进程 就是 已经结束,但是还没有清理出去的.用kill -9 $PID 也无法杀死. 所以程序中应该避免出现僵尸进程. 用fork之后,父进程如果没有wait /waitpid 等待子进程的话,子 ...

  4. JetBRAINS 系列注册机

    转载说明 本篇文章可能已经更新,最新文章请转:http://www.sollyu.com/1118/ 说明 这个是一国外的大牛写的一个 JetBRAINS 系列注册机,他里面包含了很多,我就不打字了. ...

  5. IOS中一个简单的粒子效果实现

    1.效果图展示 2.实现思路 1> 首先要实现上面的效果,第一步要处理的就是一个简单的画板,在View上面用鼠标滑动的时候画出线条,这个功能可使用UIBezierPath实现 2> 关于粒 ...

  6. 升级ssh编译错误

    升级ssh 编译的时候遇到PAM headers not found,然后需要安装 pam-devel-1.1.1-20.el6.x86_64,自己下载了rpm包,安装报错,然后用yum -y ins ...

  7. JQuery 预热

    这是第一次在博客园写随笔,之所以有这样的冲动是因为每次看到很多园友不断的发表文章,记录下自己的点点滴滴,内心就在不断的忏悔,我很敬佩这种人,不管他们表达的东西是初级还是精辟,我认为只要去坚持写了就是一 ...

  8. Winform ComboBox控件高亮显示

    //重绘下拉表单窗口,需要在窗口设计代码中加入下面这一句 this.cmdChannelName.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawF ...

  9. Linux编辑器vi使用方法详细介绍

    vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任何版本,vi编辑器是完全相 ...

  10. 【转】perl特殊符号及默认的内部变量

    perl特殊符号及默认的内部变量,有需要的朋友不妨参考下 Perl的特殊符号 @       数组                          $x{}   x名字前面是美元符号($),后面是花 ...