在java 中,如何把二进制文件(如图片,ssl证书 )转化为字节数组呢?
代码如下:
@org.junit.Test public void test055() throws IOException { File inFile = new File("d:\\Chrysanthemum.jpg"); FileInputStream fileInputStream = new FileInputStream(inFile); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); int i; //转化为字节数组流 while ((i = fileInputStream.read()) != -1) { byteArrayOutputStream.write(i); } fileInputStream.close(); // 把文件存在一个字节数组中 byte[] filea = byteArrayOutputStream.toByteArray(); byteArrayOutputStream.close(); String encoding = "ISO-8859-1"; String fileaString = new String(filea, encoding); System.out.println(fileaString); // 写入文件 FileOutputStream fileOutputStream = new FileOutputStream("d:/b.png"); fileOutputStream.write(fileaString.getBytes(encoding)); fileOutputStream.flush(); fileOutputStream.close(); }
注意:
(1)使用ByteArrayOutputStream 来把二进制流转化为字节数组流;
(2)把字节数组转化为String类型时,一定要使用ISO-8859-1编码;
String encoding = "ISO-8859-1";
String fileaString = new String(filea, encoding);
(3)通过字符串获取字节数组时,一定要使用ISO-8859-1编码:
fileOutputStream.write(fileaString.getBytes(encoding));
相关推荐
本篇将详细阐述如何在Java中进行二进制、十进制和十六进制之间的转换,以及字节数组与十六进制字符串的相互转换。 一、进制转换 1. **二进制转十进制**:Java中可以使用`Integer.parseInt()`或`Long.parseLong()`...
在IT行业中,数据的存储和处理常常涉及到不同的进制转换,比如从十进制到二进制,或者从十六进制到字节数组。在Java编程中,将十六进制位串转化为byte数组是一项常见的操作,特别是在处理二进制数据、网络通信或者...
在Java编程中,二进制、字节数组、字符、十六进制和BCD(Binary-Coded Decimal,二进制编码的十进制)编码转换是常见的数据处理任务。以下将详细介绍这些概念以及如何在Java中进行相关操作。 1. **二进制与十六进制...
二进制数组转换为二进制字符串 将二进制数组转换为十六进制字符串 将十六进制转换为二进制字节数组 将十六进制转换为二进制字符串
/* java二进制,字节数组,字符,十六进制,BCD编码转换2007-06-07 00:17/** *//** * 把16进制字符串转换成字节数组 * @param hex * @return */
在某些应用场景中,例如程序开发、数据存储或通信协议实现,将bin文件转换为二进制数组是必要的步骤。这个工具就是为了满足这种需求而设计的,它可以将bin文件方便地转化为二进制数组,便于在代码中直接使用。 二...
Java实现的进制转换工具类是Java语言中的一种常用工具类,用于实现各种进制之间的转换操作,如二进制、十六进制、字符串、数组等。该工具类主要提供了将字节数组转换为十六进制字符数组或字符串的方法,以及将字符串...
字节数组是Java和Android中用于存储和处理二进制数据的数据结构,而十六进制字符串则是用十六进制数字(0-9和A-F)表示每个字节的值。一个字节由8位组成,可以表示0到255之间的数值,而十六进制字符串则是每四位二...
不过,通常的处理流程是将这些二进制数据读取到内存中,形成一个字节数组流(byte[]),然后可以利用各种库如nodejs中的Buffer类或Java中的ByteBuffer类来对这些数据进行读取、写入和转换。 在技术实现上,如果我们...
当我们谈论将这些文件转换为二进制格式时,实际上我们是在把文件内容读取成一系列的字节,每个字节都是一个8位的二进制数。 在VB.NET和C#中,我们可以使用内置的类库来实现这个过程。让我们先来看一下VB.NET的实现...
- 将读取到的字节数组转换为相应的字符串或数值类型。 - **打印结果**:将读取到的信息打印到控制台。 - **异常处理**:通过`try-catch`结构处理可能发生的`IOException`。 - **关闭资源**:在`finally`块中关闭...
接着,`BufferedImage`可以转化为`byte[]`,通过`ImageIO.write`方法的`getRGB`函数获取图像的像素数据,最后将这些像素数据转换为字节数组。 2. **将字节数组转换为Base64字符串**: Java标准库中的`java.util....
- 使用`Float.intBitsToFloat()`方法将字节数组转换为整数,然后将这个整数转换为浮点数。这是因为浮点数在内存中是以整数的形式存储的,通过特定的位运算可以完成转换。 3. **代码示例**:以下是一个简单的Java...
"bin文件转换成十六进制数组"这个主题是关于将二进制数据转化为更适合编程和烧录的十六进制表示。这种转换对于嵌入式系统开发、固件更新、微控制器编程等工作尤为重要。 首先,我们要理解bin文件的性质。BIN是二...
在示例代码中,我们使用了little-endian字节顺序来读取二进制文件,并将其转换为CSV文件。 四、Java读取二进制文件的优点 使用Java读取二进制文件具有许多优点。首先,Java提供了多种方式来读取和处理二进制文件,...
Java 中将对象转化为 byte 数组的方法是指将 Java 对象序列化为二进制数据流,以便在网络上传输或存储。这种方法可以应用于各种领域,如分布式计算、网络通信、数据存储等。 在 Java 中,对象转化为 byte 数组通常...
2. **十六进制转二进制**:接着调用 `HexStringToBinary` 方法将十六进制字符串转换回字节数组,并再次转换为字符串打印出来,验证转换的正确性。 3. **转换方法实现**:`BinaryToHexString` 和 `HexStringToBinary`...
在Java中,二进制数据通常以字节数组的形式读取,因此需要先读取包含长度信息的2字节数组,然后将这2个字节转换为一个无符号整数,表示接下来字符串的字节长度。这里涉及到一个辅助方法byte2ToUnsignedShort,它用于...
4. **处理二进制流**:MATLAB转换后的二进制数据在Java中表现为字节数组,可以进一步处理,比如写入到文件、在网络上传输或者存储到数据库中。Java的`java.io`和`java.nio`包提供了丰富的工具来处理二进制流。 5. *...
在讨论如何将文件上传、下载并以二进制流的方式保存到数据库中时,首先需要了解几个关键概念:文件上传、文件下载、二进制流以及数据库操作。 文件上传通常指的是将本地或者网络上的文件通过网络上传到服务器。在...