关于Stream的Read方法
一次做到一个关于使用DataContractJsonSerializer类的表述。其中需要用到MemoryStream数组读取。发生数组溢出错误,这里特记录一笔:
public static class JsonSerializer<T> where T:new()
{
public static string Serialize(T obj)
{
string json = null;
using (MemoryStream ms = new MemoryStream())
{
try
{
DataContractJsonSerializer jsonS = new DataContractJsonSerializer(typeof(T));
jsonS.WriteObject(ms, obj);
ms.Position = ;
// 总的要读入的字节数数组
byte[] bytes = new byte[ms.Length];
// 读取数据的起始点
int offset = ; // 判断起始点+偏移量的数据必须在数组总的范围内
while (offset+<ms.Length)
{
// 尝试读取后10个数据
ms.Read(bytes, offset, );
// 起始点+10
offset += ;
} //剩余的数组全部读完
if (offset + >= ms.Length)
{
ms.Read(bytes, offset, (int)(ms.Length - offset));
} json = Encoding.UTF8.GetString(bytes);
}
catch (Exception ex)
{ }
}
return json;
} public static T Deserialize(string json)
{
T returnValue = default(T); using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
{
ms.Position = ;
DataContractJsonSerializer ds = new DataContractJsonSerializer(typeof(T));
returnValue = (T)ds.ReadObject(ms);
}
return returnValue;
}
}
关于Stream的Read方法的更多相关文章
- Effective Java 第三版——47. 优先使用Collection而不是Stream来作为方法的返回类型
Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...
- Stream流、方法引用
Stream流.方法引用 Stream流.方法引用 Stream流.方法引用 Stream流.方法引用 Stream流.方法引用 ... ...
- JavaSE复习(七)Stream流和方法引用
Stream流 全新的Stream概念,用于解决已有集合类库既有的弊端. 传统集合的多步遍历代码 几乎所有的集合(如 Collection 接口或 Map 接口等)都支持直接或间接的遍历操作.而当我们 ...
- java基础第11期——Stream流、方法引用、junit单元测试
1.Stream流 Stream流与io流是不同的东西,用于解决集合类库已有的弊端, 1.1 获取Stream流: Collection集合的Stream方法,注意Map集合要经过转化 default ...
- 【Java 8】Stream中flatMap方法
在java 8 Stream中,flatMap方法是一个维度升降的方法 举例说明 给 定 单 词 列 表["Hello","World"] ,要返回列表 [&q ...
- 【Java 8】Stream通过reduce()方法合并流为一条数据示例
在本页中,我们将提供 Java 8 Stream reduce()示例. Stream reduce()对流的元素执行缩减.它使用恒等式和累加器函数进行归约. 在并行处理中,我们可以将合并器函数作为附 ...
- adodb.stream对象的方法/属性
Cancel 方法 使用方法如下 Object.Cancel 说明:取消执行挂起的异步 Execute 或 Open 方法的调用.Close 方法 使用方法 ...
- spring cloud turbine 监控不到其它机器上的hystrix.stream 的解决方法 指定监控ip
turbine多台机器熔断聚合的时候 turbine控制台一直寻找的是localhost下的监控熔断数据. c.n.t.monitor.instance.InstanceMonitor : Ur ...
- java 数据类型:集合接口Collection之 Stream 的reduce方法
Stream 的reduce递归计算 import java.util.ArrayList; import java.util.Arrays; import java.util.List; impor ...
- stream的seek方法实例
using (FileStream outStream = new FileStream(@"D:\12.txt", FileMode.Open)) { using (FileSt ...
随机推荐
- WinForm中Button的使用
自定义样式 先要清除系统风格影响:this.FlatStyle = FlatStyle.Flat; FlatStyle.Flat FlatStyle.System FlatStyle.Standard ...
- Entity Framework中的连接管理
EF框架对数据库的连接提供了一系列的默认行为,通常情况下不需要我们太多的关注.但是,这种封装,降低了灵活性,有时我们需要对数据库连接加以控制. EF提供了两种方案控制数据库连接: 传递到Context ...
- 魅力 .NET:从 Mono、.NET Core[转]
前段时间,被问了这样一个问题:.NET 应用程序是怎么运行的? 当时大概愣了好久,好像也没说出个所以然,得到的回复是:这是 .NET 程序员最基本的...呵呵! 微软开源,其实不只是对 .NET 本身 ...
- 279. 完全平方数 leetcode JAVA
题目: 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n.你需要让组成和的完全平方数的个数最少. 示例 1: 输入: n = 12 输出: 3 解释: ...
- bzoj1833数字计数
题目链接 找$[1$ ~ $a-1]$和$[1$ ~ $b]$中各数码出现的次数之后相减就是答案 上代码: /********************************************* ...
- Java Builder 模式,你搞懂了么?
加油.png 前言:最近闲来无事的时候想着看看一些平常用的三方库源码,没想到看了之后才知道直接撸源码好伤身体,一般设计优秀的开源库都会涉及很多的设计模式,就比如 android 开发使用频繁的 okH ...
- IOS面试题(一)
第一次写博客,我在这里先给大家分享一些iOS中常见的面试题吧! 1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: ...
- OpenFire 安装及配置
下载 添加的属性为:EXE4J_JAVA_HOME,其属性的值为32位的JDK的所在位置. 2,openfire的启动路径中不能含有中文,好多java写的都是这个样. 3,如果安装的了 Jav ...
- json "key" 注意
json 的key只能是字符串 必须使用 双引号
- linux命令行添加图形化界面
安装一个图形化的包即可!! yum update grub2-common yum install fwupdate-efi yum groupinstall "GNOME Desktop& ...