要将文件转换为byte [],请尝试以下操作:
File file = new File("/temp/abc.txt");
//init array with file length
byte[] bytesArray = new byte[(int) file.length()];
FileInputStream fis = new FileInputStream(file);
fis.read(bytesArray); //read file into bytes[]
fis.close();
return bytesArray;
或NIO
String filePath = "/temp/abc.txt";
byte[] bFile = Files.readAllBytes(new File(filePath).toPath());
//or this
byte[] bFile = Files.readAllBytes(Paths.get(filePath));
完整的例子
这个Java示例向您展示了如何使用经典的FileInputStream
以及java.nio
类将文件读入字节数组。
FileToArrayOfBytes.java
package com.mkyong;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class FileToArrayOfBytes {
public static void main(String[] args) {
try {
// convert file to byte[]
byte[] bFile = readBytesFromFile("C:\\temp\\testing1.txt");
//java nio
//byte[] bFile = Files.readAllBytes(new File("C:\\temp\\testing1.txt").toPath());
//byte[] bFile = Files.readAllBytes(Paths.get("C:\\temp\\testing1.txt"));
// save byte[] into a file
Path path = Paths.get("C:\temp\\test2.txt");
Files.write(path, bFile);
System.out.println("Done");
//Print bytes[]
for (int i = 0; i < bFile.length; i++) {
System.out.print((char) bFile[i]);
}
} catch (IOException e) {
e.printStackTrace();
}
}
private static byte[] readBytesFromFile(String filePath) {
FileInputStream fileInputStream = null;
byte[] bytesArray = null;
try {
File file = new File(filePath);
bytesArray = new byte[(int) file.length()];
//read file into bytes[]
fileInputStream = new FileInputStream(file);
fileInputStream.read(bytesArray);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fileInputStream != null) {
try {
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return bytesArray;
}
}
参考文献
翻译自: https://mkyong.com/java/how-to-convert-file-into-an-array-of-bytes/