MemoryStream 的一些用法
MemoryStream 的一些用法
- The following code example shows how to read and write data using memory as a backing store.
- 基本读写数据
The following code example shows how to read and write data using memory as a backing store.
基本读写数据
using System;
using System.IO;
using System.Text;
using UnityEngine;public class Test : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){string str = "this is a test message!";UnicodeEncoding encoding = new UnicodeEncoding();byte[] first_str = encoding.GetBytes(str);using (MemoryStream m = new MemoryStream(100) ){m.Write(first_str, 0, first_str.Length);int count = (int)m.Length;Debug.Log(string.Format("Capacity = {0},Length = {1}, Position = {2}", m.Capacity, m.Length, m.Position));m.Seek(0, SeekOrigin.Begin);byte[] byteArray = new byte[count];m.Read(byteArray, 0, count);Debug.Log(count);int num = encoding.GetCharCount(byteArray, 0, count);Debug.Log(num);char[] charArray = new char[num];encoding.GetDecoder().GetChars(byteArray, 0, count, charArray, 0);string s;s = string.Join("", charArray);Debug.Log(s);for (int i = 0; i < charArray.Length; i++){Debug.Log(charArray[i]);}}}
}
这种方法只能处理文本,那么要处理其他类等数据呢,下面再看看第二种方法
using System.Runtime.Serialization.Formatters.Binary;
[Serializable]
public class Student
{public string name;public int id;public Gender gender;
}
[Serializable]
public enum Gender
{male,female,
}public class Test : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){Student student = new Student();student.name = "zhangsan";student.id = 11;student.gender = Gender.female;using (MemoryStream m = new MemoryStream(100) ){BinaryFormatter binaryFormatter = new BinaryFormatter();binaryFormatter.Serialize(m, student);m.Position = 0;object obj = binaryFormatter.Deserialize(m);Student ss = (Student)obj;Debug.Log(ss.name);}}
}
我们使用了BinaryFormatter 这个类来序列化 数据
[参考文件]
[1]: https://docs.microsoft.com/en-us/dotnet/api/system.io.memorystream?redirectedfrom=MSDN&view=netframework-4.8
MemoryStream 的一些用法相关推荐
- using 的三种用法
using 有哪三种用法? 1)引入命名空间. 2)给命名空间或者类型起别名. 3)划定作用域.自动释放资源,使用该方法的类型必须实现了 System.IDisposable接口,当对象脱离作用域之后 ...
- Stream、FileStream、MemoryStream的区别
1.Stream:流,在msdn的定义:提供字节序列的一般性视图,Stream提供了读写流的方法是以字节的形式从流中读取内容.而我们经常会用到从字节流中读取文本或者写入文本,微软提供了StreamRe ...
- java binaryreader_Java字符流与字节流区别与用法分析
本文实例讲述了Java字符流与字节流区别与用法.分享给大家供大家参考,具体如下: 字节流与字符流主要的区别是他们的的处理方式 流分类: 1.Java的字节流 InputStream是所有字节输入流的祖 ...
- 使用MemoryStream类读写内存
MemoryStream和BufferedStream都派生自基类Stream,因此它们有很多共同的属性和方法,但是每一个类都有自己独特的用法.这两个类都是实现对内存进行数据读写的功能,而不是对持久性 ...
- java memorystream 包_C#使用MemoryStream类读写内存
和FileStream一样,MemoryStream和BufferedStream都派生自基类Stream,因此它们有很多共同的属性和方法,但是每一个类都有自己独特的用法.这两个类都是实现对内存进行数 ...
- ExecuteNonQuery(),ExecuteScalar(),ExecuteReader的用法-转
转载于http://www.cnblogs.com/asdyzh/p/9741641.html ExecuteNonQuery(),ExecuteScalar(),ExecuteReader的用法-转 ...
- swagger自动创建接口文档用法
现在的开发大部分都是前后端分离的模式了,后端提供接口,前端调用接口.后端提供了接口,需要对接口进行测试,之前都是使用浏览器开发者工具,或者写单元测试,再或者直接使用Postman,但是现在这些都已经o ...
- c语言中external,static关键字用法
static用法: 在C中,static主要定义全局静态变量.定义局部静态变量.定义静态函数. 1.定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量.全局静态变量有 ...
- Pandas_transform的用法
先来看一个实例问题. 如下销售数据中展现了三笔订单,每笔订单买了多种商品,求每种商品销售额占该笔订单总金额的比例.例如第一条数据的最终结果为:235.83 / (235.83+232.32+107.9 ...
最新文章
- rpm 安装 忽略依赖_CentOS 7 安装 MySQL 5.7 详细教程及常见问题
- matlab红字怎么删除,购买方开具红字信息表如何作账务?
- kademlia java_分布式哈希表原理与实现(Python版和Java版)
- UIAlertView的使用方法
- rotate array 旋转数组
- Exchange企业实战技巧(27)邮件中使用数字签名和邮件加密功能
- deepfake 图片_DeepFake克星来了!简单2步算法,造假图像无处可逃
- PHP访问连接MYSQL数据库
- 资料下载丨“十四五”数据库发展趋势与挑战-CCF数据库专委会
- SQL Server执行计划面试问题
- Redisbook学习笔记(3)数据类型之字符串
- 【HTML5CSS3进阶学习01】气泡组件的实现
- ad中按钮开关的符号_收藏:电路图符号大全
- nginx反向代理获取用户真实Ip地址
- ups计算软件_一篇文章读懂UPS
- 2021-03-26 大数据技术对企业管理的影响和应用前景分析
- python读取fits第三方库_如何读取FITS
- 如何在分析崩溃的边缘分析问题
- 缓存穿透该怎么解决? 回懵面试官
- 专业Java报表工具Stimulsoft Reports.Java常见问题解答