文件流的操作

ps:今天记录一下关于io操作的东西,以前总是在复制别人的代码,前天终于有时间好好研究一下。研究下来,其实觉得还是蛮充实的,就觉得终于懂的差不多了,以前总觉得查查网上就行了,反正是很简单的代码。不过,我想正因为简单,越简单的代码越要懂得越全越多才好。


一、文件流的读。

using (FileStream stream = new FileStream(@"d:\2.txt", FileMode.Open))//using块结束后自动调释放方法,枚举值open为打开(流要读就要打开),
            {
                byte[] array = new byte[1024 * 1024];//实例化一个字节流
                stream.Read(array, 0, array.Length);//流的读取
                textBox1.Text = Encoding.Default.GetString(array);//显示在textbox中
            }

二、文件流的写

FileStream stream = new FileStream(@"d:\21.txt", FileMode.Create);//流要写,就要create 一个文档,或是打开一个文档追加内容
            byte[] array = Encoding.Default.GetBytes(textBox1.Text);
            for (int i = 0; i < array.Length; i++)
            {
                array[i] = (byte)(array[i] + 1);
            }
            stream.Write(array, 0, array.Length);//流的写入
            stream.Dispose();//释放方法

三、copy

FileStream stream1 = new FileStream(@"d:\21.txt", FileMode.Open);
            FileStream stream2 = new FileStream(@"d:\21.txt", FileMode.Create);
            byte[] array = new byte[1024 * 1024];
            int length = 0;
            do
            {
                length= stream1.Read(array, 0, array.Length);//每次读最多1M
                stream2.Write(array, 0, length);//每次写入实际读到的字节流
            } while (length== array.Length);//实际读取大小和设定读取大小一致时,才能循环
            stream1.Dispose();
            stream2.Dispose();


四、实际应用:文件截断
如例三的代码,只要通过文件的大小,时间就可以计算出要截断的位置,然后再来要定取截断位置的字节流多少。


五、实际应用:文件加密
把我们得到文件的字节流,进行一定的处理,再写成另一个文件,就很容易进行最简单手法,也是最困难解密的方法。


注意点:
1、FileStream是文件流,创建了之后就一定要关闭。
2、文件流可以通过字节流截断文件,也可以用于加密文件,但是除了可以被txt处理的文件外,其他的文件如果转成string是不行的。

猜你喜欢

转载自blog.csdn.net/jingjingwin5/article/details/50918109
今日推荐