关于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 ...
随机推荐
- 洛谷P4149 [IOI2011]Race(点分治)
题目描述 给一棵树,每条边有权.求一条简单路径,权值和等于 KK ,且边的数量最小. 输入输出格式 输入格式: 第一行:两个整数 n,kn,k . 第二至 nn 行:每行三个整数,表示一条无向边的 ...
- Split 之特殊用法
java中split()特殊符号"." "|" "*" "\" "]" 关于点的问题是用stri ...
- Major OSL changes to catch up
flat_map optimization for runtime specialization: https://github.com/imageworks/OpenShadingLanguage/ ...
- 「HNOI 2015」亚瑟王
\(Description\) 有\(n\)张卡牌,每一张卡牌有\(p_i\)的概率发动,并造成\(d_i\)点伤害.一共有\(r\)轮,每一轮按照编号从小到大依次考虑,如果这张牌已经发动过则跳过该牌 ...
- DatagridView 控件列顺序与设置的不一样
解决方案如下 : 1. dataGridView1.AutoGenerateColumns = false; 2. 绑定的dataSource 中所有的列都要写进去(列一定是绑定的模型中属性) 先在界 ...
- JS 性别选择
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- “全栈2019”Java第四十三章:封装
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- react-route简明学习
- BZOJ2243 [SDOI2011]染色(LCT)
传送门 明明是道树剖的题…… 然而我硬生生做成了LCT 虽然的确用LCT只是板子啦(LCT的题哪道不是板子) 就是把颜色打上标记,然后基本就是板子 //minamoto #include<bit ...
- JQuery实现全选、反选和取消功能
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...