fileoutputstream 转 byte数组_Java:如何实现文件与数组的相互转换?
在这篇文章中,我将向您展示如何将文件转换为字节数组,然后再将字节数组转换为文件。
要将文件转换为字节数组,请使用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:如何实现文件与数组的相互转换?相关推荐
- mysql c++ 存数组,c++读取数据文件到数组的实例
在刷题过程中,遇到的读取文件问题,只是记录自己的问题,新手~ 如果在一个txt文件当中有以下数据 1 2 3 4 5 6 7 8 9 10 1.如果我们只是简单将这些数据保存在一个数组中: #incl ...
- java 申请不定长度数组_java中申请不定长度数组ArrayList的方法
如下所示: import java.util.ArrayList; //java中申请不定长度数组 public class Test01 { public static void main(Stri ...
- java new数组_Java如何使用new创建数组
java语言使用new操作符来创建数组,语法如下: arrayRefVar = new dataType[arraySize]; 上面的语法语句做了两件事: 一.使用dataType[arraySiz ...
- java不等长二维数组_Java中关于二维数组的理解与使用
今天练习的时候遇到一个题目,题目需求是这样的: 需求说明: 根据3个班各5名学生某门课程的成绩,正确使用二维数组计算如图所示3个班各自的总成绩 分析: 要实现这个功能需要存储两个信息: 一个是班级信息 ...
- java char 动态数组_Java程序来填充char数组中的元素
可以使用java.util.Arrays.fill()方法将元素填充到char数组中.此方法将所需的char值分配给Java中的char数组.所需的两个参数是数组名称和要存储在数组元素中的值. 演示此 ...
- java 传参字符串数组_JAVA语言之okhttp传递数组参数
比较以上两种格式,发现格式不对.传给后台时,总是报参数错误的异常. 解决办法:定义一个对象继承自okhttp3.RequestBody public class DefaultRequestBody ...
- java如何使用类数组_java – 如何使用泛型与数组的类?
我想创建一个Classes数组,每个都代表我正在构建的系统中可用的类型.所有涉及的类都是公共超类的子类.所以我想做: Class extends SuperClass>[] availableT ...
- java无序数组_Java查找不重复无序数组中是否存在两个数字的和为某个值
今天去某在线教育面试面试官让做的一道题,题目描述如下: 给定一个不重复的无序数组arr和一个定值num 查找arr中是否有两个数的和等于num 有则返回这两个数的下标(可能有多组, 只用返回一组), ...
- java set集合转数组_java set转list,数组与list的转换
面试的时候,经常会问到数据结构,比如数据和链表的区别,比如list如何去重,这就涉及到java 集合类的一些常用方法,数组和list和set如何互相转换. 来自http://www.sohu.com/ ...
- java固定数组_Java在固定长度的数组里加入一个数
展开全部 题目:给定一个有序的数组{13, 15, 19, 28, 33, 45, 78, 106},如果往该32313133353236313431303231363533e59b9ee7ad943 ...
最新文章
- 太酷啦!我在A4纸上看宫崎骏动画
- Sql Server之旅——第十一站 简单说说sqlserver的执行计划
- python 办公_python 让办公变得自动化
- 程序人生之回顾大学前两年----第二篇
- 【文文殿下】网络流学习笔记
- 设计模式之单例模式(一)
- 白帽子发现美军网站SQL注入漏洞,可获取敏感数据
- python2.7安装sqlite3模块
- 安装Windows 10 V1909对CPU有什么要求?
- 判断输入几位数的正则_判断是几位数,并逆向输出此数的程序算法和说明
- react视频教程经典大全
- graphpad做单因素方差分析_Graphpad做单因素方差分析步骤详解
- 【CPRI】(3)帧格式详解(重点)
- VUE 分享给好友及朋友圈
- 数字科技陪伴企业成长|突破封锁,庚顿数据助力中国名牌全球瞩目
- android 触摸事件流程。
- 河北大学计算机学院赵润,影视编导
- 十一新疆之旅中邂逅的一首诗《黄河,母亲之河》
- web work 。。。
- MVC中利用ViewBag传递Json数据时的前端处理方法