您的位置:首页 > 编程语言 > Java开发

Java: convert a file to a byte array, then convert byte array to a file.

2012-03-07 16:32 597 查看
Java: convert a file to a byte array, then convert byte array to a file.

Java: convert a file to a byte array, then convert byte array to a file.

Under Category: Others



If you need Java code to convert a file to a byte array and then convert it back, this will work for you!

First, to convert a file to byte array, ByteArrayOutputStream class is used. This class implements an output stream in which the data is written into a byte array. The buffer automatically grows as data is written to it. The data can be retrieved using toByteArray() and toString().

Second, to convert byte array back to the original file, FileOutputStream class is used. A file output stream is an output stream for writing data to a File or to a FileDescriptor.

Here is the code.

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();
}
}
Why would someone like to convert a file to byte array?

There are various applications of this conversion. For example, convert file into byte to save into database, transfer file to other system using web service, etc.

Similarly, you can convert an image to byte array, see this post.

References:

1. ByteArrayOutputStream Java Doc

2. FileOutputStream Java Doc

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: