FileStream的读取和写入

摘要:
使用FileStream类读取、写入、打开和关闭文件系统上的文件,并操作与文件相关的其他操作系统句柄,如管道、标准输入和标准输出。读写操作可以指定为同步或异步。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位置开始向流中写入内容;

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

免责声明:文章转载自《FileStream的读取和写入》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇如何记录selenium自动化测试过程中接口的调用信息DataGrid 刷新选中问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

js获取节点

1. 通过顶层document节点获取:(1) document.getElementById(elementId):该方法通过节点的ID,可以准确获得需要的元素,是比较简单快捷的方法。如果页面上含有多个相同id的节点,那么只返回第一个节点。 如今,已经出现了如prototype、Mootools等多个JavaScript库,它们提供了更简便的方法:$(i...

R语言基础-数组和列表

数组(array) 一维数据是向量,二维数据是矩阵,数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的. 数组函数是array(),语法是:array(dadta, dim),当中data必须是同一类型的数据。dim是各维的长度组成的向量。 1、产生一个三维和四维数组。 例1:xx <- array(1:24, c(3, 4,...

C# params 用法简介

params 是C#的关键字, params主要是在声明方法时参数类型或者个数不确定时使用,关于params 参数数组,需掌握以下几点:   一.参数数组必须是一维数组  二.不允许将params修饰符与ref和out修饰符组合起来使用   三.与参数数组对应的实参可以是同一类型的数组名,也可以是任意多个与该数组的元素属于同一类型的变量  四.若实参是数组...

vue调用组件,组件回调给data中的数组赋值,报错Invalid prop type check failed for prop value. Expecte

报错信息: 代码信息:调用一个tree组件,选择一些信息 <componentsTree ref="typeTreeComponent"   @treeCheck="treeCheck"   :isClearAllChecked=true   :defaultProps="defaultProps"> </componentsTree&...

读书笔记:深入理解ES6(十)

第十章 改进的数组功能   ES6标准在ES5的基础上,继续改进数组,为数组添加了很多新功能。例如:创建数组的新方法、几个实用便捷的方法及创建定型数组(Typed Array)的能力。本章一一讲解这些新特性。 第1节 创建数组   1. 传统的创建数组的方法。   在ES6以前,创建数组的方式有两种:一种是调用Array构造函数,一种是使用数组自面量语法。...

Java中各种集合(字符串类)的线程安全性!!!

Java中各种集合(字符串类)的线程安全性!!! 一、概念: 线程安全:就是当多线程访问时,采用了加锁的机制;即当一个线程访问该类的某个数据时,会对这个数据进行保护,其他线程不能对其访问,直到该线程读取完之后,其他线程才可以使用。防止出现数据不一致或者数据被污染的情况。 线程不安全:就是不提供数据访问时的数据保护,多个线程能够同时操作某个数据,从而出现数...