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数组。

          

    所以,没毛病~

  • 相关阅读:
    ORA12560: TNS: 协议适配器错误的问题
    ibatis代码生成工具abator使用全过程
    DbHelper数据操作类
    眼睛有干涩、血丝、怕光,流泪,甚至红肿的现象吗
    Dot.Net代码生成器
    两分钟让你明白什么是ERP
    spring的b/s项目中配置log4j
    十面埋妇
    程序员发展的目标
    标准体重计算查询
  • 原文地址:https://www.cnblogs.com/zxcjj/p/8989707.html
Copyright © 2011-2022 走看看