Avatar ·

如何在Java中将文件转换为字节数组(byte[])?

大家好!我是Java新手,遇到了一个问题:我需要完整读取一个文件并将其内容作为字节数组(byte[])获取。具体任务是加载磁盘上的图像并通过HTTP请求发送。 我尝试了几种方法,但要么显得繁琐,要么导致错误。例如,我尝试使用FileInputStream:
File file = new File("image.jpg");
FileInputStream fis = new FileInputStream(file);
byte[] data = new byte[(int) file.length()];
fis.read(data);
fis.close();
但这段代码有时无法读取整个文件,特别是当文件很大时。我还听说过Apache Commons IO,但我不想为这么简单的任务引入外部库。请告诉我如何在纯Java中正确且可靠地将文件读取为字节数组?重要的是,解决方案要适用于任何类型的文件(二进制、文本),并且不会在大文件上卡住。提前感谢! <<>>

最可靠的方法:Files.readAl