【代码复用】File与byte[]转换
File转换为byte[],下面是给出File的路径参数:
public static byte[] getBytesByFile(String filePath) { try { File file=new File(filePath); //获取输入流 FileInputStream fis = new FileInputStream(file); //新的 byte 数组输出流,缓冲区容量1024byte ByteArrayOutputStream bos = new ByteArrayOutputStream(1024); //缓存 byte[] b = new byte[1024]; int n; while ((n = fis.read(b)) != -1) { bos.write(b, 0, n); } fis.close(); //改变为byte[] byte[] data = bos.toByteArray(); // bos.close(); return data; } catch (Exception e) { e.printStackTrace(); } return null; }
byte[]转换为File,输入参数:文件byte[],文件转换后的路径(不含文件名.格式),文件名称(包括格式)
public static void getFileByBytes(byte[] bytes, String filePath, String fileName) { BufferedOutputStream bos = null; FileOutputStream fos = null; File file = null; try { File dir = new File(filePath); // 判断文件目录是否存在 if (!dir.exists() && dir.isDirectory()) { dir.mkdirs(); } file = new File(filePath + "\" + fileName); //输出流 fos = new FileOutputStream(file); //缓冲流 bos = new BufferedOutputStream(fos); //将字节数组写出 bos.write(bytes); } catch (Exception e) { e.printStackTrace(); } finally { if (bos != null) { try { bos.close(); } catch (IOException e) { e.printStackTrace(); } } if (fos != null) { try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } } }