C#文件流。

什么是文件流:

字节流,把大文件分散成byte[ ] 

使用文件流:

class Program
    {      
        static void Main(string[] args)
        {
            //文件流的使用方式。
            string msg = "张三";
            //字符串转成byte数组。
            byte[] bytes = System.Text.Encoding.UTF8.GetBytes(msg);
            //byte转成字符串
            string newmsg = System.Text.Encoding.UTF8.GetString(bytes);
            Console.WriteLine(newmsg);

        }    
    }

通过FileStream来读写文件。

 class Program
    {      
        static void Main(string[] args)
        {
            ////1、 创建文件流
            //FileStream fsWrite = new FileStream("fist.txt", FileMode.Create);
            ////2、使用文件流,执行读写操作。
            //string msg = "I am a colder.";
            //byte[] bytes = System.Text.Encoding.UTF8.GetBytes(msg);
            ////写
            ////参数1:将指定字节数组写入文件
            ////参数2:参数1的偏移量,一般为0
            ////参数3:要写入的实际字节个数
            //fsWrite.Write(bytes, 0, bytes.Length);
            ////3、清空缓冲区  执行上面的操作后  并没有真正的写入而是还在缓冲区(默认满了才写) 
            ////   关闭文件流  
            ////   释放资源   可以只掉这个  它内部会调用上两个
            
            //fsWrite.Flush();
            //fsWrite.Close();
            //fsWrite.Dispose();
            //Console.WriteLine("finished!");
            ////使用文件流时,可以将代码放到
            ////using ()
            ////{

            ////}
            ////中 ,可以自动释放资源。



            //读取文件
            //1、创建文件流
            using (FileStream fsRead = new FileStream("fist.txt", FileMode.Open))
            {//不需指定编码,因为这是读取字节流,还没转成字符串
                //根据文件的总字节数,创建byte数组,一次性读入
                byte[] bytes1 = new byte[fsRead.Length];
                //2、读取文件
                fsRead.Read(bytes1, 0, bytes1.Length);
                string readmsg = System.Text.Encoding.UTF8.GetString(bytes1);
                Console.WriteLine(readmsg);
            }


        }    
    }
    

猜你喜欢

转载自www.cnblogs.com/zhangyuhao/p/10543354.html