java memorystream 包_C#使用MemoryStream类读写内存
和FileStream一样,MemoryStream和BufferedStream都派生自基类Stream,因此它们有很多共同的属性和方法,但是每一个类都有自己独特的用法。这两个类都是实现对内存进行数据读写的功能,而不是对持久性存储器进行读写。
读写内存-MemoryStream类
MemoryStream类用于向内存而不是磁盘读写数据。MemoryStream封装以无符号字节数组形式存储的数据,该数组在创建MemoryStream对象时被初始化,或者该数组可创建为空数组。可在内存中直接访问这些封装的数据。内存流可降低应用程序中对临时缓冲区和临时文件的需要。下表列出了MemoryStream类的重要方法:
Read():读取MemoryStream流对象,将值写入缓存区。
ReadByte():从MemoryStream流中读取一个字节。
Write():将值从缓存区写入MemoryStream流对象。
WriteByte():从缓存区写入MemoytStream流对象一个字节。
Read方法使用的语法如下:
mmstream.Read(byte[] buffer,offset,count)
其中mmstream为MemoryStream类的一个流对象,3个参数中,buffer包含指定的字节数组,该数组中,从offset到(offset +count-1)之间的值由当前流中读取的字符替换。Offset是指Buffer中的字节偏移量,从此处开始读取。Count是指最多读取的字节数。Write()方法和Read()方法具有相同的参数类型。
MemoryStream类的使用实例:
using System;
using System.IO;
using System.Text;
class program{
static void Main()
{
int count;
byte[] byteArray;
char[] charArray;
UnicodeEncoding uniEncoding=new UnicodeEncoding();
byte[] firstString=uniEncoding.GetBytes("努力学习");
byte[] secondString=uniEncoding.GetBytes("不做C#中的菜鸟");
using (MemoryStream memStream=new MemoryStream(100))
{
memStream.Write(firstString,0,firstString.Length);
count=0;
while(count
{
memStream.WriteByte(secondString[count++]);
}
Console.WriteLine("Capacity={0},Length={1},Position={2}\n",memStream.Capacity.ToString(),memStream.Length.ToString(),memStream.Position.ToString());
memStream.Seek(0, SeekOrigin.Begin);
byteArray=new byte[memStream.Length];
count=memStream.Read(byteArray,0,20);
while(count
{
byteArray[count++]=Convert.ToByte(memStream.ReadByte());
}
charArray=new char[uniEncoding.GetCharCount(byteArray,0,count)];
uniEncoding.GetDecoder().GetChars(byteArray,0,count,charArray,0);
Console.WriteLine(charArray);
Console.ReadKey();
}
}
}
在这个实例代码中使用了using关键字。注意:
using 关键字有两个主要用途:
作为指令,用于为命名空间创建别名或导入其他命名空间中定义的类型。
例如:using System;
作为语句,用于定义一个范围,在此范围的末尾将释放对象。
using(Connection conn=new Connection(connStr))
{
}
//使用using关键字可及时销毁对象
MemoryStream.Capacity 属性 取得或设定配置给这个资料流的位元组数目。
MemoryStream.Position 属性 指定当前流的位置。
MemoryStream.Length 属性获取用字节表示的流长度。
SeekOrigin()是一个枚举类,作用设定流的一个参数。
SeekOrigin.Begin我得理解就是文件的最开始,“0”是偏移,表示跳过0个字节。写2就是跳过2个字节。
MemoryStream类通过字节读写数据。本例中定义了写入的字节数组,为了更好的说明Write和WriteByte的异同,在代码中声明了两个byte数组,其中一个数组写入时调用Write方法,通过指定该方法的三个参数实现如何写入。另一个数组调用了WriteByte方法,每次写入一个字节,所以采用while循环来完成全部字节的写入。写入MemoryStream后,可以检索该流的容量,实际长度,当前流的位置,将这些值输出到控制台。通过观察结果,可以确定写入MemoryStream流是否成功。
调用Read和ReadByte两种方法读取MemoryStream流中的数据,并将其进行Unicode编码后输出到控制台。
java memorystream 包_C#使用MemoryStream类读写内存相关推荐
- java 获取包下的所有类,附完整源码和测试代码
java 获取包下的所有类,完整Java代码如下: package com.example.demo.util;import java.io.File; import java.io.FileFilt ...
- 使用MemoryStream类读写内存
MemoryStream和BufferedStream都派生自基类Stream,因此它们有很多共同的属性和方法,但是每一个类都有自己独特的用法.这两个类都是实现对内存进行数据读写的功能,而不是对持久性 ...
- Java.math包中常用的类
Java.math包 Java.math.BigDecimal类 Java.math.BigInteger类实例 Java.math.MathContext类实例
- Java.io包中常用的类
Java.io包 Java.io.BufferedInputStream类实例 Java.io.BufferedOutputStream类使用例子 Java.io.BufferedReader类 Ja ...
- Java.util包中常用的类
Java.util包 Java.util.ArrayDeque类 Java.util.ArrayList类 Java.util.Arrays类 Java.util.BitSet类 Java.util. ...
- java.lang包中的常用类
java.lang包 java.lang.Boolean类 java.lang.Byte类 java.lang.Character java.lang.Character.Subset类 java.l ...
- java.lang包—类加载器ClassLoader类
注意: 类加载器的知识与JVM内存模型紧密相连,要学好这块的知识,一定要掌握JVM的内存模型. 关于JVM内存模型,推荐阅读:JVM-内存模型JMM 目录 一.什么是ClassLoader? 二.类加 ...
- java一个包有两个类_java一个包包含多个类 java 类包含类
一个java工程可以有多个包含main方法的类吗? 每一个java文件都会有一个public static void main(String[] args)作为程序作为入口,一个类有且只有一个,但是可 ...
- java memorystream 包_C#到Java:Base64String,MemoryStream,GZipStream
我有一个在.NET中被gzip压缩的Base64字符串,我想将它转换回Java中的字符串.我正在寻找C#语法的一些Java等价物,特别是: > Convert.FromBase64String ...
最新文章
- VS .NET(C#)四舍五入方法(转)
- 趣学python3(40)--TCP服务器和客户端(socketserver类)
- 队列的基本操作c语言代码大全,数据结构――队列(循环队列)的基本操作(实现链队列逐一取出c语言代码)...
- 【注意】LeetCode 2. Add Two Numbers
- 持续图片滚动字幕html,使用JavaScript实现连续滚动字幕效果的方法
- 类/对象/构造函数/析构函数
- 字根校对软件,中文校对行业的一匹黑马!
- win10简单方法安装杜比v4音效!win10 1909适用!
- 转 常见视频编码方式以及封装格式
- python sorted方法
- 谷歌翻译(英文PDF文档翻译成中文,免费无限制)
- mac 谷歌浏览器翻译问题
- ABP VNext学习日记30
- 1.初识elasticsearch
- 数据分析思维(《数据分析思维:分析方法和业务知识》)
- Chatper 16 Instrumental Variable Estimation
- Unity3D摄像机远、近切面绘制
- el-table 排序
- 去哪儿旅行携程旅行淘宝旅行移动端产品分析报告
- # 2014年蓝桥杯真题CC++B组