您的位置 首页 java

Java:如何实现文件与数组的相互转换?

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

Java:如何实现文件与数组的相互转换?

要将文件转换为字节数组,请使用 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的资料与面试题,如果你在技术上面想提升自己的话,可以关注我,私信发送领取资料或者在评论区留下自己的联系方式,有时间记得帮我点下转发让跟多的人看到哦。

Java:如何实现文件与数组的相互转换?

文章来源:智云一二三科技

文章标题:Java:如何实现文件与数组的相互转换?

文章地址:https://www.zhihuclub.com/185611.shtml

关于作者: 智云科技

热门文章

网站地图