首页 > 编程语言 >java文件转二进制

java文件转二进制

时间:2023-01-13 23:34:35浏览次数:37  
标签:文件 java File 二进制 return ex file new byte


本工具类提供三个方法:

  • 1.文件转为二进制数组
  • 2.文件转为二进制字符串
  • 3.二进制字符串还原为文件
可当做工具类直接使用。
package com.yscredit.sz.util;

import org.springframework.util.FileCopyUtils;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

/**
* Author: momo
* Date: 2018/5/7
* Description:文件转为二进制
*/
public class BinUtil {

public static void main(String[] args){
File file = new File("E://ONO白皮书v2.0.pdf");
String fileName = file.getName();
binToFile(fileToBinStr(file),fileName,"E://测试byte");
getFileToByte(file);
}

/**
* 文件转为二进制数组
* @param file
* @return
*/
public static byte[] fileToBinArray(File file){
try {
InputStream fis = new FileInputStream(file);
byte[] bytes = FileCopyUtils.copyToByteArray(fis);
return bytes;
}catch (Exception ex){
throw new RuntimeException("transform file into bin Array 出错",ex);
}
}

/**
* 文件转为二进制字符串
* @param file
* @return
*/
public static String fileToBinStr(File file){
try {
InputStream fis = new FileInputStream(file);
byte[] bytes = FileCopyUtils.copyToByteArray(fis);
return new String(bytes,"ISO-8859-1");
}catch (Exception ex){
throw new RuntimeException("transform file into bin String 出错",ex);
}
}


/**
* 二进制字符串转文件
* @param bin
* @param fileName
* @param parentPath
* @return
*/
public static File binToFile(String bin,String fileName,String parentPath){
try {
File fout = new File(parentPath,fileName);
fout.createNewFile();
byte[] bytes1 = bin.getBytes("ISO-8859-1");
FileCopyUtils.copy(bytes1,fout);

//FileOutputStream outs = new FileOutputStream(fout);
//outs.write(bytes1);
//outs.flush();
//outs.close();

return fout;
}catch (Exception ex){
throw new RuntimeException("transform bin into File 出错",ex);
}
}

/**
* 文件转为二进制数组
* 等价于fileToBin
* @param file
* @return
*/
public static byte[] getFileToByte(File file) {
byte[] by = new byte[(int) file.length()];
try {
InputStream is = new FileInputStream(file);
ByteArrayOutputStream bytestream = new ByteArrayOutputStream();
byte[] bb = new byte[2048];
int ch;
ch = is.read(bb);
while (ch != -1) {
bytestream.write(bb, 0, ch);
ch = is.read(bb);
}
by = bytestream.toByteArray();
} catch (Exception ex) {
throw new RuntimeException("transform file into bin Array 出错",ex);
}
return by;
}

}


标签:文件,java,File,二进制,return,ex,file,new,byte
From: https://blog.51cto.com/u_15936016/6006790

相关文章

  • linux系统命令、目录、文件相关命令
    前期必备知识1、命令提示符[root@jasonNB~]#root表示⽤户名信息@为分隔[root@jasonNB~]#root表示⽤户名信息@......
  • JavaScript学习笔记—对象
    对象中可以存储多个各种类型的数据,对象中存储的数据成为属性添加属性或修改属性值:对象.属性名=属性值读取属性:对象.属性名,如果读取对象中没有的属性返回undefined删......
  • Java基础02 关键字与标识符
    关键字与标识符关键字随着不断深入学习Java逐渐理解和掌握标识符定义Java中所有的组成部分都需要名字,类名,变量名,各种方法名都称为标识符命名首字母:a-z;A-......
  • Java基础03 数据类型
    数据类型强类型语言:严格规范使用的语言Java,c,c++都是,安全性强,速度相对较慢弱类型语言:不怎么严格规范使用的语言(但一定也是在规则允许下)JavaScript等等,安全......
  • java基础05 类型转换
    类型转换知识点上一节讲到,字符的本质还是数,所以字符也可以进行运算运算中,先要将不同类型的数据转换为同一类型后,才能再进行运算,转换具有优先级低—————————......
  • Java基础04 数据类型拓展与面试题讲解
    数据拓展与面试题讲解数据拓展整数拓展浮点数拓展字符拓展布尔值拓展importstaticjava.lang.System.*;publicclasstest04{publicstaticvoidmain(St......
  • python创建写入csv文件代码拆解理解
    代码块globalfileNamefileName='{}.csv'.format(keyword)ifnotos.path.exists(fileName):withopen(fileName,'w+',encoding='utf-8-sig',newline='')as......
  • 03.JAVA入门
    Java入门一、Java的特性和优势特性优势:简单性、面向对象、可移植性、高性能、分布式、动态性、多线程、安全性、健壮性二、JDKJREJVMJVM:JavaVirtualMachin......
  • java性能分析小工具--jconsole
     如果电脑装了java版本1.5以上,都会自带这个性能分析小工具。windows下输入命令行:jconsole 即可调出这个工具 可以对线程、内存、类、CPU等做一些简单分析  ......
  • java操作kudu 增删改查
    1.maven导入依赖<dependency><groupId>org.apache.kudu</groupId><artifactId>kudu-client</artifactId><version>1.6.0</version>......