在这篇文章中,我将向您展示如何将文件转换为字节数组,然后再将字节数组转换为文件。

要将文件转换为字节数组,请使用 byte ArrayOutputStream类。此类实现输出流,在该流中,数据被写入字节数组。缓冲区随着数据写入自动增长。可以使用toByteArray()和toString()检索数据。
要将字节数组转换回原始文件,请使用 file OutputStream类。文件输出流是用于将数据写入文件或FileDescriptor的输出流。
以下代码已经过全面测试。
import Java .io.ByteArrayOutputStream; import java.io.File; import java.io. FileInputStream ; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger;
public class genFile {
public static void main(String[] args) throws FileNotFoundException, IOException {
File file = new File(“java.pdf”);
FileInputStream fis = new FileInputStream(file);
//System.out.println(file.exists() + “!!”);
//InputStream in = resource.openStream();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte [] buf = new byte [1024];
try {
for ( int readNum; (readNum = fis.read(buf)) != -1;) {
bos.write(buf, 0, readNum); //no doubt here is 0
//Writes len bytes from the specified byte array starting at offset off to this byte array output stream.
System.out.println(“read ” + readNum + ” bytes,”);
}
} catch (IOException ex) {
Logger.getLogger(genJpeg. class .getName()).log(Level.SEVERE, null , ex);
}
byte [] bytes = bos.toByteArray();
//below is the different part
File someFile = new File(“java2.pdf”);
FileOutputStream fos = new FileOutputStream(someFile);
fos.write(bytes);
fos.flush();
fos. close ();
}}
最后,开发这么多年我也总结了一套学习Java的资料与面试题,如果你在技术上面想提升自己的话,可以关注我,私信发送领取资料或者在评论区留下自己的联系方式,有时间记得帮我点下转发让跟多的人看到哦。

