zoukankan      html  css  js  c++  java
  • 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.

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

    convert file to byte array

    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

  • 相关阅读:
    Python 3: 加密简介
    5 个最受人喜爱的开源 Django 包
    ROS tf-增加坐标系
    ROS tf监听编写
    ROS tf广播编写
    ROS tf基础使用知识
    ROS tf-数据类型
    Windows Vistual Studio 2013/2015 MRPT安装
    OMPL 在windows下的安装
    CMake 设置Target输出目录和后缀名
  • 原文地址:https://www.cnblogs.com/lexus/p/2383782.html
Copyright © 2011-2022 走看看