一、获取文件字节流转字节数组输出流再转字节数组
1、file转byte[]
FileInputStream --> ByteArrayOutputStream --> byte[]
public static byte[] fileToBytes(File file) throws IOException {
FileInputStream fis = null;
ByteArrayOutputStream bos = null;
byte[] resultBytes = null;
try {
fis = new FileInputStream(file);
bos = new ByteArrayOutputStream();
byte[] bytes = new byte[1024];
int len;
while((len = fis.read(bytes))!=-1){
bos.write(bytes,0,len);
}
resultBytes = bos.toByteArray();
} catch (IOException e) {
e.printStackTrace();
} finally {
bos.close();
fis.close();
}
return resultBytes;
}
2、byte数组转File文件
byte [] --> FileOutputStream
/**
* byte数组转成file文件
* @param bytes
*/
public static void bytesToFile(byte [] bytes,String path) throws IOException {
//根据路径创建对象,路径不存在会自动创建
FileOutputStream fos=new FileOutputStream(path);
//将bytes数组读取到文件中
fos.write(bytes,0,bytes.length);
fos.close();
}
二、Files工具类方法
1、file转byte[]
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;
public class FileByte {
public static void main(String[] args) {
String path = System.getProperty("user.dir") + "\\src\\test.txt";
try {
byte[] encoded = Files.readAllBytes(Paths.get(path));
System.out.println(Arrays.toString(encoded));
} catch (IOException e) {
}
}
}
2、byte[]转file
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
public class ByteFile {
public static void main(String[] args) {
String path = System.getProperty("user.dir") + "\\src\\test.txt";
String finalPath = System.getProperty("user.dir") + "\\src\\final.txt";
try {
byte[] encoded = Files.readAllBytes(Paths.get(path));
Files.write(Paths.get(finalPath), encoded);
} catch (IOException e) {
}
}
}