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

  • 相关阅读:
    Delphi 与 C/C++ 数据类型对照表(最新的tokyo)
    Delphi新语法 For ..In
    NSwag生成客户端调用代码
    微服务
    springcloud
    NET高性能IO
    秒杀场景
    CPU开销sql server 性能调优
    WinDbg调试分析 net站点 CPU100%问题
    全链路实践Spring Cloud 微服务架构
  • 原文地址:https://www.cnblogs.com/lexus/p/2383782.html
Copyright © 2011-2022 走看看