在这篇文章中,我将向您展示如何将文件转换为字节数组,然后再将字节数组转换为文件。

要将文件转换为字节数组,请使用ByteArrayOutputStream类。此类实现输出流,在该流中,数据被写入字节数组。缓冲区随着数据写入自动增长。可以使用toByteArray()和toString()检索数据。

要将字节数组转换回原始文件,请使用FileOutputStream类。文件输出流是用于将数据写入文件或FileDescriptor的输出流。

以下代码已经过全面测试。

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();

}}

最后,开发这么多年我也总结了一套学习Java的资料与面试题,如果你在技术上面想提升自己的话,可以关注我,私信发送领取资料或者在评论区留下自己的联系方式,有时间记得帮我点下转发让跟多的人看到哦。

fileoutputstream 转 byte数组_Java:如何实现文件与数组的相互转换?相关推荐

  1. mysql c++ 存数组,c++读取数据文件到数组的实例

    在刷题过程中,遇到的读取文件问题,只是记录自己的问题,新手~ 如果在一个txt文件当中有以下数据 1 2 3 4 5 6 7 8 9 10 1.如果我们只是简单将这些数据保存在一个数组中: #incl ...

  2. java 申请不定长度数组_java中申请不定长度数组ArrayList的方法

    如下所示: import java.util.ArrayList; //java中申请不定长度数组 public class Test01 { public static void main(Stri ...

  3. java new数组_Java如何使用new创建数组

    java语言使用new操作符来创建数组,语法如下: arrayRefVar = new dataType[arraySize]; 上面的语法语句做了两件事: 一.使用dataType[arraySiz ...

  4. java不等长二维数组_Java中关于二维数组的理解与使用

    今天练习的时候遇到一个题目,题目需求是这样的: 需求说明: 根据3个班各5名学生某门课程的成绩,正确使用二维数组计算如图所示3个班各自的总成绩 分析: 要实现这个功能需要存储两个信息: 一个是班级信息 ...

  5. java char 动态数组_Java程序来填充char数组中的元素

    可以使用java.util.Arrays.fill()方法将元素填充到char数组中.此方法将所需的char值分配给Java中的char数组.所需的两个参数是数组名称和要存储在数组元素中的值. 演示此 ...

  6. java 传参字符串数组_JAVA语言之okhttp传递数组参数

    比较以上两种格式,发现格式不对.传给后台时,总是报参数错误的异常. 解决办法:定义一个对象继承自okhttp3.RequestBody public class DefaultRequestBody  ...

  7. java如何使用类数组_java – 如何使用泛型与数组的类?

    我想创建一个Classes数组,每个都代表我正在构建的系统中可用的类型.所有涉及的类都是公共超类的子类.所以我想做: Class extends SuperClass>[] availableT ...

  8. java无序数组_Java查找不重复无序数组中是否存在两个数字的和为某个值

    今天去某在线教育面试面试官让做的一道题,题目描述如下: 给定一个不重复的无序数组arr和一个定值num 查找arr中是否有两个数的和等于num 有则返回这两个数的下标(可能有多组, 只用返回一组), ...

  9. java set集合转数组_java set转list,数组与list的转换

    面试的时候,经常会问到数据结构,比如数据和链表的区别,比如list如何去重,这就涉及到java 集合类的一些常用方法,数组和list和set如何互相转换. 来自http://www.sohu.com/ ...

  10. java固定数组_Java在固定长度的数组里加入一个数

    展开全部 题目:给定一个有序的数组{13, 15, 19, 28, 33, 45, 78, 106},如果往该32313133353236313431303231363533e59b9ee7ad943 ...

最新文章

  1. 太酷啦!我在A4纸上看宫崎骏动画
  2. Sql Server之旅——第十一站 简单说说sqlserver的执行计划
  3. python 办公_python 让办公变得自动化
  4. 程序人生之回顾大学前两年----第二篇
  5. 【文文殿下】网络流学习笔记
  6. 设计模式之单例模式(一)
  7. 白帽子发现美军网站SQL注入漏洞,可获取敏感数据
  8. python2.7安装sqlite3模块
  9. 安装Windows 10 V1909对CPU有什么要求?
  10. 判断输入几位数的正则_判断是几位数,并逆向输出此数的程序算法和说明
  11. react视频教程经典大全
  12. graphpad做单因素方差分析_Graphpad做单因素方差分析步骤详解
  13. 【CPRI】(3)帧格式详解(重点)
  14. VUE 分享给好友及朋友圈
  15. 数字科技陪伴企业成长|突破封锁,庚顿数据助力中国名牌全球瞩目
  16. android 触摸事件流程。
  17. 河北大学计算机学院赵润,影视编导
  18. 十一新疆之旅中邂逅的一首诗《黄河,母亲之河》
  19. web work 。。。
  20. MVC中利用ViewBag传递Json数据时的前端处理方法

热门文章

  1. 机器学习:数据驱动的科学
  2. sql over的作用及用法
  3. [C++再学习系列] 引用和指针
  4. 大数据笔记2019.5.8
  5. pandas打乱行次序
  6. Microsoft Visual C++ 14.0 is required
  7. markdownpad 2 pro版本(注册码)
  8. Flink1.4.0连接Kafka0.10.2时遇到的问题
  9. 关于接口测试,我们要测什么,怎么上手
  10. HTML5中的localStorage用法