java 把二进制文件转化为字节数组 博客分类: Java javabytearray字节数组二进制
程序员文章站
2024-02-24 18:46:22
...
在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));