java 对象序列化 数组_序列化-将任何对象转换为j中的字节数组

您要执行的操作称为“序列化”。 有几种方法可以做到,但是如果您不需要花哨的东西,我认为使用标准Java对象序列化就可以了。

也许您可以使用这样的东西?

package com.example;

import java.io.ByteArrayInputStream;

import java.io.ByteArrayOutputStream;

import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

public class Serializer {

public static byte[] serialize(Object obj) throws IOException {

try(ByteArrayOutputStream b = new ByteArrayOutputStream()){

try(ObjectOutputStream o = new ObjectOutputStream(b)){

o.writeObject(obj);

}

return b.toByteArray();

}

}

public static Object deserialize(byte[] bytes) throws IOException, ClassNotFoundException {

try(ByteArrayInputStream b = new ByteArrayInputStream(bytes)){

try(ObjectInputStream o = new ObjectInputStream(b)){

return o.readObject();

}

}

}

}

可以对此进行一些改进。 至少事实是每个字节数组只能读取/写入一个对象,这可能是或可能不是您想要的。

请注意,“只有支持java.io.Serializable接口的对象才能写入流”(请参阅java.nio.ByteBuffer)。

由于可能会遇到问题,因此java.nio.ByteBuffer的不断分配和调整大小可能会成为瓶颈。 根据您的线程模型,您可能需要考虑重用某些对象。

对于未实现java.nio.ByteBuffer接口的对象的序列化,您可能需要编写自己的序列化程序,例如,使用java.nio.ByteBuffer的read * / write *方法和java.nio.ByteBuffer的get * / put *方法,可能还要加上反射,或者拉入 第三方依赖性。

该站点提供了一些序列化框架的列表和性能比较。 查看API,看来Kryo可能适合您的需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/442932.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java中gradlew 命令_gradle命令学习

概述命令学习比较枯燥,全部是例子~gradle版本假设你的本地gradle已经安装配置完成。没有安装配置的,可以参考 gradle安装C:\Users\yueling.DANGDANG>gradle -v------------------------------------------------------------Gradle 4.5.1------------…

java jsp常见问题_Java和Jsp编程中应注意的几个常见问题

1、对应String类型的对象使用println()方法时,如果对象为null,将打印null而不是引发NullPointerException,由此引用的问题是容易造成错觉,对于以后对字符串的操作容易引起问题。2、引发NullPointerException异常,主要原…

JAVA捕捉输入格式异常_Java学习(四).异常处理

异常处理任何一个软件或程序都可能在运行的过程中出现故障,问题的关键是故障出现以后如何处理?谁来处理?怎样处理?处理后系统能否恢复正常的运行?本章在介绍Java处理这类问题基本方法的基础上,讨论包含异常…

java1.5以后新增的特性_jdk1.5之后的一些新特性

oreach与数组加强的for循环(Enhanced forLoop)for(type element : array) {System.out.println(element)....}int[] arr {1, 2, 3, 4, 5};for(int element : arr)System.out.println(element);泛型(Generics)• J2SE5.0之后,针对泛型(Generics)设计的解决方…

php去除html属性,PHP如何去掉所有HTML标签?

PHP如何去掉所有HTML标签?在PHP中可以使用“strip_tags()”函数将字符串中的所有HTML标签去除,该函数用于从字符串中去除HTML和 PHP标记,其语法是“strip_tags(str)”,其参数str表示要进行操作的字符串,返回值为处理后…

php启用 asynchdns,在 PHP 中使用 Promise + co/yield 协程

摘要: 我们知道 JavaScript 自从有了 Generator 之后,就有了各种基于 Generator 封装的协程。其中 hprose 中封装的 Promise 和协程库实现了跟 ES2016 的 async/await 一样的功能,并且更加灵活。我们还知道 PHP 自从 5.5 之后,也引入了 Gener…

php 获取agent,PHP代码 解析HTTP_USER_AGENT 获取客户端操作系统

*** 获取客户端操作系统信息包括win10* param null* author Jea杨* return string*/function GetOS(){$agent $_SERVER[HTTP_USER_AGENT];$os false;if (preg_match(/win/i, $agent) && strpos($agent, 95)){$os Windows 95;}else if (preg_match(/win 9x/i, $age…

php怎么写for循环,PHP for循环的写法和示例

For循环是最近的循环语句之一,无论哪种语言,都有这个循环语句,也是我们工作中常用的循环方法。语法规则:for (expr1; expr2; expr3){要执行的代码}expr1:表示循环开始的地方expr2 :循环的条件,如…

php批量下载网络图片,php批量下载网页图片并替换路径为本地

一篇文章复制过来,发现图片路径都是别人网站的,如何一键下载这些图片到本地,并且修改成为本地的路径呢。代码如下 复制代码/*** 获取替换文章中的图片路径* param string $xstr 内容 采集网页的content* param string $keyword 创建照片的文件…

php获取本机root,通过PHP执行root命令

慕村225694在尝试之前&#xff0c;请阅读整个文章&#xff0c;然后进行选择。使用二进制包装器(带有suid位)的解决方案1)创建一个脚本(最好是.sh)&#xff0c;其中包含要作为root用户运行的脚本。# cat > php_shell.sh < wrapper.c < #include #include int mai…

php位值,php中,如何取得一个整型值的低位和高位值?

整型值可以使用十进制&#xff0c;十六进制&#xff0c;八进制或二进制表示&#xff0c;前面可以加上可选的符号(- 或者 )。二进制表达的 integer 自 PHP 5.4.0 起可用。要使用八进制表达&#xff0c;数字前必须加上 0(零)。要使用十六进制表达&#xff0c;数字前必须加上 0x。…

java寂静岭 攻略,GBA版《寂静岭》HARRY篇图文流程攻略

“Play Novel: Silent Hill”是KONAMI于2001年3月21日在GBA上推出的一款文字冒险游戏&#xff0c;剧情内容取自同社的恐怖冒险游戏——Silent Hill(《寂静岭》)。游戏基本上是纯粹的文字冒险游戏&#xff0c;过程中穿插着几段动画CG作为过场&#xff0c;游戏中绝大部分的图片和…

php 实现百度坐标转换,PHP实现腾讯与百度坐标转换

废话不多说&#xff0c;直接上代码public function coordinate_switch($a,$b){//百度转腾讯坐标转换$x (double)$b - 0.0065;$y (double)$a - 0.006;$x_pi 3.14159265358979324;$z sqrt($x * $x$y * $y) - 0.00002 * sin($y * $x_pi);$theta atan2($y,$x) - 0.000003 * co…

实验一熟悉matlab环境,数字信号处理报告实验一:熟悉MATLAB环境.doc

数字信号处理报告实验一&#xff1a;熟悉MATLAB环境.doc实验一熟悉MATLAB环境一 实验目的1. 熟悉MATLAB的主要操作命令。2. 学会简单的矩阵输入和数据读写。3. 掌握简单的绘图命令。4. 用MATLAB编程并学会创建函数。5. 观察离散系统的频率响应。二 实验内容2.用MATLAB实现下列序…

MySQL中使用CASE出错,如何在MySQL中正确使用CASE..WHEN

如何在MySQL中正确使用CASE..WHEN这里是一个演示查询&#xff0c;注意它非常简单&#xff0c;仅在base_price为0的位置获取&#xff0c;并且仍然select条件3&#xff1a;SELECT CASE course_enrollment_settings.base_price WHEN course_enrollment_settings.base_price 0 THE…

matlab rootdir,Python cfg.ROOT_DIR属性代码示例

# 需要导入模块: from fast_rcnn.config import cfg [as 别名]# 或者: from fast_rcnn.config.cfg import ROOT_DIR [as 别名]def demo(net, image_name, classes):"""Detect object classes in an image using pre-computed object proposals.""&quo…

5g算法matlab怎么用,使用 MATLAB 开发 5G NR 设计

请选择其一AlabamaAlaska美属萨摩亚APO/FPO AAAPO/FPO AEAPO/FPO APArizonaArkansasCaliforniaCaroline IslandsColoradoConnecticutDelawareDistrict of ColumbiaFlorida格鲁吉亚关岛HawaiiIdahoIllinoisIndianaIowaKansasKentuckyLouisianaMaineMariana Islands马绍尔群岛Mar…

微擎cloud.mod.php,微擎“could not resolve ”、“could not resolve host”系列问题处理办法...

今天一个用户跟我说模块安装出现”could not resolve host:update.we10d.cn“报错&#xff0c;昨天在整理最近十个月用户搜索关键词排行的时候也发现”could not resolve host“、”could not resolve“还是占据不小的比例的。其实这类报错的处理方法大致相同&#xff0c;都是/…

php提交订单代码怎么写,提交代办订单示例代码

require curl.func.php;$appkey your_appkey_here;//你的appkey$illegalid 1333,1334;//违章ID$mobile 15158825888;$outorderno ;$appsecret your_appsecret_here;$queryarr array(mobile>$mobile,illegalid>$illegalid,outorderno>$outorderno);$sign makeSi…

基于matlab的信号与系统实例,华南理工大学信号与系统实验基于Matlab的信号处理实例...

第2讲基于Matlab的信号处理实例实验内容(1)(1) 读取给定的3D加速度信号文件&#xff0c;绘出信号波形&#xff1b;程序源代码&#xff1a;function sy2fid fopen(run 100m_TROUSERS POCKET_1_陈佳_1.txt,r);afscanf(fid,%d,%d,%d\n);fclose(fid);lenlength(a)/3;k1;for i1:len…