Python 官方文档:入门教程 => 点击学习
3-5 读写内存流 u本节学习目标: n了解读写内存流MemoryStream的特点 n学习如何建立内存流MemoryStream n了解读写缓存流BufferedStream n学习如何
派生的流对象只能支持这些功能中的一部分。例如:NetworkStream不支持定位。可以利用从Stream派生出来的对象的CanRead、CanWrite和CanSeek属性判断流对象支持哪些操作。 |
名称 |
说明 |
MemoryStream () |
使用初始化为零的可扩展容量初始化 MemoryStream 类的新实例。 |
MemoryStream (byte[]) |
基于指定的字节数组初始化 MemoryStream 类的无法调整大小的新实例。 |
MemoryStream (byte[], Boolean) |
使用按指定要求设置的 CanWrite 属性基于指定的字节数组初始化 MemoryStream 类的无法调整大小的新实例。 |
MemoryStream mem = new MemoryStream(buffer);
//这时,无法再设置Capacity属性的大小。 |
MemoryStream mem = new MemoryStream(buffer, false);
//这时,CanWrite属性就被设置为false 。 |
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.windows.Forms;
using System.IO;
namespace FileOptionApplication
{
public partial class Form14 : Form
{
public Form14()
{
InitializeComponent();
}
//建立字节数组
byte[] buffer = new byte[600];
/// <summary>
/// 获取测试性数据
/// </summary>
private void GetTestData()
{
for (int i = 0; i < 600; i++)
{
buffer[i] = (byte)(i % 256);
//byte类型的数最大不能超过255,用256取模实现
}
}
/// <summary>
/// button1按钮的鼠标单击Click事件
/// </summary>
private void button1_Click(object sender, EventArgs e)
{
//创建测试数据
GetTestData();
//创建内存流对象,初始分配50字节的缓冲区
MemoryStream mem = new MemoryStream(50);
//向内存流中写入字节数组的所有数据
mem.Write(buffer,0,buffer.GetLength(0));
//使用从缓冲区读取的数据将字节块写入当前流。
//参数:
//1、buffer从中写入数据的缓冲区。
//2、offset buffer中的字节偏移量,从此处开始写入。
//3、count最多写入的字节数。
//GetLength(0) 为 GetLength 的一个示例,它返回 Array 的第一维中的元素个数。
label1.Text = "写入数据后的内存流长度是:"+mem.Length.ToString();
label2.Text = "分配给内存流的缓冲区大小:"+mem.Capacity.ToString();
mem.SetLength(500);
label3.Text = "调用SetLength方法后的内存流长度:" + mem.Length.ToString();
mem.Capacity = 620;//注意:此值不能小于Length属性
label4.Text = "调用Capacity方法后缓冲区大小:" + mem.Capacity.ToString();
//将读写指针移到距流开头10个字节的位置
mem.Seek(45, SeekOrigin.Begin);
label5.Text = "内存中的信息是:"+mem.ReadByte().ToString();
}
}
} |
名称 |
说明 |
BufferedStream (Stream) |
使用默认的缓冲区大小 4096 字节初始化 BufferedStream 类的新实例。 |
BufferedStream (Stream, Int32) |
使用指定的缓冲区大小初始化 BufferedStream 类的新实例。 |
--结束END--
本文标题: 3-8 读写内存流
本文链接: https://lsjlt.com/news/191293.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0