• FileStream的读取和写入


    使用 FileStream 类对文件系统上的文件进行读取、写入、打开和关闭操作,并对其他与文件相关的操作系统句柄进行操作,如管道、标准输入和标准输出。读写操作可以指定为同步或异步操作。FileStream 对输入输出进行缓冲,从而提高性能。

     先看代码,后面讲解:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;//注意,必不可少

    namespace WasteIndustry {
        
    public partial class Form3 : Form {
            
    public Form3() {
                InitializeComponent();
     
    /*
     * C# Program
     * Author:神舟龙
     * Email: hxl2008hxl@hotmai.com
     
    */

            }

            
    private void Form3_Load(object sender, EventArgs e) {
                
    //创建一个文本文件,并实例化一个文件流
                FileStream MyFileStream1 = new FileStream(@"D:\Test.text",FileMode.Create);
                
                FileInfo MyFiles 
    = new FileInfo(@"D;\Test.text");
                
    //实例化一个只读文件流
                FileStream MyFileStream2 = MyFiles.OpenRead();

                
    //设置文件流为只写权限
                MyFileStream2 = MyFiles.OpenWrite();
                
    //设置文件流的打开方式为追加模式,只读权限,不共享
                MyFileStream2 = MyFiles.Open(FileMode.Append,FileAccess.Read,FileShare.None);
                
    //创建文件
                MyFileStream2 = MyFiles.Create();

                
    //从文件中读取字节
                int MyBytes = MyFileStream1.ReadByte();
                
    //定义数组长度
                int NumberOFBytes = 20;
                
    //byte类型数组
                byte[] MyByteArray = new byte[NumberOFBytes];
                
    //从文件中读取20个字节放入数组中
                int BytesRead = MyFileStream1.Read(MyByteArray,0,NumberOFBytes);

                
    //定义一个字节
                byte MyWriteByte = 100;
                
    //向文件中写入一个字节
                MyFileStream1.WriteByte(MyWriteByte);

                
    //定义数组长度
                int NumberOfBytesToWrite = 256;
                
    //定义byte类型数组
                byte[] MyWriteByteArray=new Byte[NumberOfBytesToWrite];

                
    //循环向byte类型的数组中插入byte值
                for (int i = 0; i < 256; i++) {
                    MyWriteByteArray[i]
    =(byte)i;
                    i
    ++;
                }
                
    //向流中写入数组内容
                MyFileStream1.Write(MyWriteByteArray,0,NumberOfBytesToWrite);
                
    //关闭流
                MyFileStream1.Close();
                
    //关闭流
                MyFileStream2.Close();
            }
        }
    }
    MyFileStream1对象,使用指定路径和创建模式实例化,创建模式FileMode是一个枚举类型,它还包括:
    Append 可以打开现有的文件并查找的文件尾部,FileMode.Append只能与FileAcces.Write(写权限)一起使用
    Create 创建新文件,如果文件存在则覆盖,没有则新建
    CreateNew 创建新文件,有的话,出现异常
    Open 打开现有的文件,如果有打开,不存在文件就会引发异常
    如果存在文件则打开,不存在则创建 如果存在文件则打开,不存在则创建


    MyFileStream2对象,用FileInfo实例化,FileInfo方法有open,openreade,opentext,create,createtext。

    文件流的读取(read)与写入(write);

    read

                //定义数组长度
                int NumberOFBytes = 20;
                
    //byte类型数组
                byte[] MyByteArray = new byte[NumberOFBytes];
                
    //从文件中读取20个字节放入数组中
                int BytesRead = MyFileStream1.Read(MyByteArray,0,NumberOFBytes);

    定义一个byte类型的数组,设置数组的长度,read方法就是在文件中从0开始读取,读取20个字节数,然后替换到数组中

      //定义数组长度
                int NumberOfBytesToWrite = 256;
                
    //定义byte类型数组
                byte[] MyWriteByteArray=new Byte[NumberOfBytesToWrite];

                
    //循环向byte类型的数组中插入byte值
                for (int i = 0; i < 256; i++) {
                    MyWriteByteArray[i]
    =(byte)i;
                    i
    ++;
                }
                
    //向流中写入数组内容
                MyFileStream1.Write(MyWriteByteArray,0,NumberOfBytesToWrite);
    定义一个byte类型的数组,设置数组的长度,并通过循环想byte数组中写入字节,通过write方法把数组中的值从0位置开始向流中写入内容;

     (园内低手,口下留情,欢迎指正!)

    作者:神舟龙
        
     

    新建的wp開發者群:42182428 

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    转帖:linux 下注册apache开机自启动
    apache 编译 rewrite 模块
    Skyline开发入门(C#)
    matlab的m文件怎么集成到vs里?
    C#打包安装与卸载
    OnClick与OnClientClick的时序和条件
    javascript弹出窗口代码大全
    .NET开发人员必知的八个网站
    [转] GIS算法源码集合
    最短路径算法——Dijkstra and Floyd算法
  • 原文地址:https://www.cnblogs.com/shenzhoulong/p/1956530.html
Copyright © 2020-2023  润新知