48
30
我有一个X类型的对象,我想在将其发送到S3之前将其转换为字节数组。有人可以告诉我该怎么做吗?我感谢您的帮助。
你要执行的操作称为“ 序列化 ”。有几种方法可以做到,但是如果你不需要花哨的东西,我认为使用标准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.io.ObjectOutputStream
)。
由于你可能会碰到它,因此,持续分配和调整大小java.io.ByteArrayOutputStream
可能会成为瓶颈。根据你的线程模型,你可能需要考虑重用某些对象。
对于未实现Serializable接口的对象的序列化,你可能需要编写自己的序列化器,例如,使用的read * / write *
方法java.io.DataOutputStream
和get * / put *
方法(java.nio.ByteBuffer
可能与反射一起使用),或者引入第三方依赖性。
该站点提供了一些序列化框架的列表和性能比较。查看API,看来Kryo可能适合你的需求。
问题内容: 如果我在运行时有一个Class实例,是否可以获取其byte []表示形式?我感兴趣的字节将为Class文件格式,这样它们将是[ClassLoader.defineClass] [3]的有效输入。 [3]:http : //java.sun.com/j2se/1.5.0/docs/api/java/lang/ClassLoader.html#defineClass(java.lang.S
我有以下代码将csv文件创建为字节数组: 上面返回的是来自java包的字节[]。nio。文件 。 然而,现在我需要从api返回一个Json对象,而不是一个字节数组。 代码中的所有其他逻辑应该保持不变。我能做到这一点的最简单方法是什么?
问题内容: 如何将整个读入字节数组? 问题答案: 你可以使用Apache Commons IO处理此任务和类似任务。 该类型具有静态方法来读取和返回。 在内部,这会创建一个并将字节复制到输出中,然后调用。它通过复制4KiB块中的字节来处理大型文件。 分享改善这个答案
问题内容: 我知道Java不允许无符号类型,所以我想知道它如何将整数转换为字节。假设我有一个值为255的整数a,并且将该整数转换为一个字节。该值表示在字节11111111中吗?换句话说,该值是否更多地视为带符号的8位整数,还是仅直接复制该整数的后8位? 问题答案: 这称为缩小原始转换。根据规格: 将有符号整数缩小为整数类型 T会 简单地丢弃除 n个 最低阶位以外的所有位,其中 n 是用于表示类型
问题内容: 如何将转换为而不进行转换? 我试过了: 但是doc文件与字节不同(字节是 二进制信息 )。例如: 并且是不同的。 PS:UTF-8不起作用,因为它会将一些字节转换为不同的值。我测试了,它不起作用。 PS2:不,我不要。 问题答案: 您需要指定所需的编码,例如UTF-8 并且将是相同的。 要解码,您需要知道使用了哪种编码,以确保可以正确解码。
本文向大家介绍如何在Java中将PDF转换为字节数组?,包括了如何在Java中将PDF转换为字节数组?的使用技巧和注意事项,需要的朋友参考一下 您可以使用FileInputStream类的方法从PDF文件中读取数据,该方法需要字节数组作为参数。 示例 样本.pdf