在将文件转换为字节数组(反之亦然)之前,我们假设在src文件夹中有一个名为test.txt的文件。
这是test.txt的内容
This is a
Test file.
示例1:将文件转换为字节[]
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) {
}
}
}
v
[84, 104, 105, 115, 32, 105, 115, 32, 97, 13, 10, 84, 101, 115, 116, 32, 102, 105, 108, 101, 46]
在上面的程序中,我们将文件的路径存储在变量path中 。
然后,在try块内,我们使用readAllBytes()
方法从给定路径读取所有字节。
然后,我们使用Arrays
的toString()
方法来打印字节数组。
由于readAllBytes()
可能会引发IOException
,因此我们在程序中使用了try-catch
块。
示例2:将byte []转换为文件
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) {
}
}
}
运行程序时, test.txt的内容将复制到final.txt 。
在上面的程序中,我们使用了与示例1相同的方法来从path中存储的File中读取所有字节。这些字节存储在已编码的数组中 。
我们还有一个finalPath ,将在其中写入字节。
然后,我们仅使用Files
的write()
方法将编码的字节数组写入给定finalPath中的File。