Java文件与字节数组转换
/** * 返回一个byte数组 * @param file * @return * @throws IOException */ private byte[] getBytesFromFile(File file){ byte[] bytes = null; try { InputStream is = new FileInputStream(file); // 获取文件大小 long length = file.length(); if (length > Integer.MAX_VALUE) { // 文件太大,无法读取 throw new IOException("File is to large " + file.getName()); } // 创建一个数据来保存文件数据 bytes = new byte[(int) length]; // 读取数据到byte数组中 int offset = 0; int numRead = 0; while (offset < bytes.length && (numRead = is.read(bytes, offset, bytes.length - offset)) >= 0) { offset += numRead; } // 确保所有数据均被读取 if (offset < bytes.length) { throw new IOException("Could not completely read file " + file.getName()); } // Close the input stream and return bytes is.close(); } catch (Exception e) { e.printStackTrace(); } return bytes; }
/** * 文件转化为字节数组 * * @param file * @return */ public static byte[] getBytesFromFile(File file) { byte[] ret = null; try { if (file == null) { // log.error("helper:the file is null!"); return null; } FileInputStream in = new FileInputStream(file); ByteArrayOutputStream out = new ByteArrayOutputStream(4096); byte[] b = new byte[4096]; int n; while ((n = in.read(b)) != -1) { out.write(b, 0, n); } in.close(); out.close(); ret = out.toByteArray(); } catch (IOException e) { // log.error("helper:get bytes from file process error!"); e.printStackTrace(); } return ret; }
/** * 把字节数组保存为一个文件 * * @param b * @param outputFile * @return */ public static File getFileFromBytes(byte[] b, String outputFile) { File ret = null; BufferedOutputStream stream = null; try { ret = new File(outputFile); FileOutputStream fstream = new FileOutputStream(ret); stream = new BufferedOutputStream(fstream); stream.write(b); } catch (Exception e) { // log.error("helper:get file from byte process error!"); e.printStackTrace(); } finally { if (stream != null) { try { stream.close(); } catch (IOException e) { // log.error("helper:get file from byte process error!"); e.printStackTrace(); } } } return ret; }
相关推荐
char short int long float double 转换成byte数组
Java字节数组与常见类型转换工具,包括byte[] 与int long double float string boolean 等类型的相互转换。
不过,通常的处理流程是将这些二进制数据读取到内存中,形成一个字节数组流(byte[]),然后可以利用各种库如nodejs中的Buffer类或Java中的ByteBuffer类来对这些数据进行读取、写入和转换。 在技术实现上,如果我们...
- 示例中的`hexStringToByte()`方法将十六进制字符串转换为字节数组,而`bytesToHexString()`则将字节数组转换为十六进制字符串。 2. **字节数组** - 字节数组在Java中用`byte[]`表示,它可以存储任意字节值,常...
Java 中的基本类型与 byte 数组之间的转换是非常重要的,以下是关于 Java 基本类型与 byte 数组互相转换的相关知识点: 1. short 类型转换成 byte 数组 在 Java 中,short 类型是 16 位的整数类型,而 byte 数组是...
在IT领域,尤其是在Web开发中,图片文件与Base64编码字节数组字符串的转换是一种常见的操作。这种转换在不直接使用图片文件路径或URL,而是将图片数据嵌入到HTML、CSS或JavaScript中时非常有用。下面我们将详细探讨...
在Java编程中,有时我们需要将文件转换为字节数组,以便进行数据传输、存储或者进一步处理。这个过程涉及到文件I/O操作,主要包括文件输入流(FileInputStream)和字节数组输出流(ByteArrayOutputStream)。下面...
总结,Android中将字节数组转换为十六进制字符串的方法多种多样,可以根据项目需求和性能要求选择合适的方式。在开发过程中,了解并熟练掌握这些转换技巧,可以帮助我们更好地处理二进制数据,提升代码的可读性和可...
/* java二进制,字节数组,字符,十六进制,BCD编码转换2007-06-07 00:17/** *//** * 把16进制字符串转换成字节数组 * @param hex * @return */
在Java或类似的编程语言中,我们经常会遇到需要将字符串(String)与字节数组(Byte[])以及十六进制表示的字符串(Hex)进行相互转换的情况。这些转换在处理网络通信、文件存储、加密解密等领域尤为关键。下面我们...
介绍php字符串与byte字节数组转化类,转换一个String字符串为byte数组,将字节数组转化为String类型的数据,转换一个int为byte数组,从字节数组中指定的位置读取一个Integer类型的数据,转换一个shor字符串为byte...
在Java编程语言中,有时我们需要将两个或多个字节数组(`byte`数组)合并成一个新的单一数组。这种情况在处理二进制数据、文件读写或者与硬件交互时尤其常见。本文将深入探讨如何在Java中实现两个`byte`数组的合并,...
Java bytes数组与基本类型的相互转换 Int -> Bytes int64ToByte8 int48ToByte6 int40ToByte5 int32ToByte4 int24ToByte3 int16ToByte2 int8ToByte Bytes -> Int bytesToInt64 bytesToInt48 bytesToInt40 bytesTo...
/** * 16进制表示的字符串转换为字节数组 * @param hexString 16进制表示的字符串 * @return byte[] 字节数组 */ public static byte[] hexStringToByteArray(String hexString) { hexString = hexString.replaceAll...
在Java编程语言中,字节数组(byte array)和基本数据类型如int之间的转换是常见的操作,特别是在处理网络通信、文件存储或者序列化时。本篇内容将详细讲解如何在Java中进行这两种类型的转化。 首先,我们来看如何...
在实际应用中,例如在Java的NIO(非阻塞I/O)中,`java.nio.Bits`和`HeapByteBuffer`类提供了更高级别的接口来执行这些转换,它们可以更方便地处理字节数组与其他类型之间的转换,并且支持缓冲区的读写操作,使得...
通过上述两个方法,我们可以很容易地在Java程序中完成图片与字节数组之间的转换。这些方法在实际应用中非常实用,尤其是在处理大量图像数据时。需要注意的是,在处理图像时要确保资源得到妥善管理,避免内存泄漏等...
本篇将详细阐述如何在Java中进行二进制、十进制和十六进制之间的转换,以及字节数组与十六进制字符串的相互转换。 一、进制转换 1. **二进制转十进制**:Java中可以使用`Integer.parseInt()`或`Long.parseLong()`...
在Java编程语言中,将`byte[]`数组转换为`int`, `long`, 和 `double`类型的数据是一项常见的任务,特别是在处理二进制数据或网络通信时。以下将详细讲解如何进行这些转换,并提供相关代码示例。 1. **转换byte[]到...