zoukankan      html  css  js  c++  java
  • 将文件内容转化为byte数组返回

    如何将文件内容转化为byte数组并返回呢?对于这个问题,我献上我第一次成功的代码~

    package com.succez.task1;
    
    import java.io.ByteArrayOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    
    /**
     * <p>Copyright: Copyright (c) 2018</p>
     * <p>succez</p>
     * @author ZhangJinjin
     * @createdate 2018年5月3日
     */
    public class fileToBuf {
    
        /**
         * 将文件内容转换成byte数组返回,如果文件不存在或者读入错误返回null
    * * 这里需要在内存中创建一个字节数组缓冲区,将读取的文件字节数据写入到缓冲区中 * 最后将字节流转换成byte数组,并关闭资源 * 当出现文件找不到异常和输入输出异常时需要捕获
    */ public static byte[] file2buf(File fobj){ byte[] buffer = null; try{ if (!fobj.exists()) { return null; } FileInputStream fis = new FileInputStream(fobj); ByteArrayOutputStream bos = new ByteArrayOutputStream(); byte[] b = new byte[1024]; int len=-1; while ((len = fis.read(b)) != -1) { bos.write(b, 0, len); } fis.close(); bos.close(); buffer = bos.toByteArray(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return buffer; } /* * 两个测试用例 * */ public static void main(String []args){ File fobj1 = new File("E:\TestExample\test1.txt"); byte[] buffer1=fileToBuf.file2buf(fobj1); System.out.println(buffer1); File fobj2 = new File("E:\TestExample\test2.docx"); byte[] buffer2=fileToBuf.file2buf(fobj2); System.out.println(buffer2); } }

     结果如下:

    仔细分析了一遍,我觉得挺好的,还怎么改,开玩笑!


    流程再走一遍:

    FileInputStream  从文件系统中的某个文件中获得输入字节,读取文本原始字节流。

    ByteArrayOutputStream  此类实现了一个输出流,其中的数据被写入一个 byte 数组。缓冲区会随着数据的不断写入而自动增长。可使用 toByteArray()toString() 获取数据。

    一直读入数据,并且,将其写入到缓冲区中

    利用toByteArray()方法转化为byte数组。

          

    所以,没毛病~

  • 相关阅读:
    数据比赛实现的细节
    matlab 构建数据集实用 api
    matlab 构建数据集实用 api
    新技能 get —— 如何校验 md5(windows)
    新技能 get —— 如何校验 md5(windows)
    中间件 —— 消息中间件(MOM)
    中间件 —— 消息中间件(MOM)
    详细说明svn分支与合并---命令行
    SVN 分支及合并的介绍和实践---命令行
    SVN中的Branches分支以及Merge 应用举例
  • 原文地址:https://www.cnblogs.com/zxcjj/p/8989707.html
Copyright © 2011-2022 走看看