public static void main(String[] args) throws Exception {

File sourceFile = new File("/home/joy/图片/img1-lg.jpg");

File tempFile = new File("/home/joy/桌面/TempFile");

saveTempFile(sourceFile, tempFile);

String str = byteToString(tempFile);

File saveFile = new File("/home/joy/桌面/saveFile.jpg");

StringTobyte(str,saveFile);

}

// 保存临时文件

public static void saveTempFile(File sourceFile, File tempFile) throws Exception {

FileInputStream inputStream = new FileInputStream(sourceFile);

FileOutputStream fileOutputStream = new FileOutputStream(tempFile);

byte[] buf = new byte[10 * 1024];

int readLeng = 0;

while ((readLeng = inputStream.read(buf)) != -1) {

fileOutputStream.write(buf, 0, readLeng);

fileOutputStream.flush();

}

fileOutputStream.close();

inputStream.close();

}

// 文件字节转字符串

public static String byteToString(File file) throws Exception {

StringBuilder returnDatas = new StringBuilder();

FileInputStream fileInputStream = new FileInputStream(file);

byte[] buf = new byte[10 * 1024];

int readLenth = 0;

while ((readLenth = fileInputStream.read(buf)) != -1) {

returnDatas.append(new String(buf,0,readLenth));

}

fileInputStream.close();

return returnDatas.toString();

}

// 字符串转文件

public static void StringTobyte(String str,File file) throws Exception {

FileOutputStream fileOutputStream = new FileOutputStream(file);

fileOutputStream.write(str.getBytes());

fileOutputStream.close();

}

代码大意:把一张图片通过字节流转成一个字符串,然后在获取该字符串的字节后还原为文件。

理解中,字符只是多带一层编码,还原成字节后应该还是能获取到源文件的呀。

字节流转化为文件流_字节流转成字符串之后,在通过字符串转成字节流后的文件为什么会不一样?...相关推荐

  1. java Hutool发送邮件附带附件 使用文件流、字节数组方式

    MailUtil.send();无法发送文件流, //这个方式只能传入本地File,无法传入网络资源 MailUtil.send(); 内置Mail类实现方式 public static void m ...

  2. java字节输出流怎么转码_字节/字符——输入/输出流

    一: 1.计算机如何存储中文的? 当前平台默认编码集 :GBK 一个中文两个字节 第一个字节:一定是负数 第二个字节:一般是负数,可能也会是正数,不会影响的结果. */ public class St ...

  3. 接收大文件流_一文搞定 Node.js 流 (Stream)

    stream(流)是一种抽象的数据结构.就像数组或字符串一样,流是数据的集合. 不同的是,流可以每次输出少量数据,而且它不用存在内存中. 比如,对服务器发起 http 请求的 request/resp ...

  4. angular8 获取文件流_基于PG12.2实现主从异步流复制及主从切换教程(上)

    概述 今天主要分享一下PG主从异步流复制搭建相关的一些理论内容,仅供参考. 一.PostgreSQL通过WAL日志构建高可靠性原理 PostgrepSQL在数据目录的子目录pg_xlog子目录中维护了 ...

  5. h5页面怎么处理文件流_一种H5页面效果生成视频文件的方法及系统与流程

    本发明涉及计算机技术领域,尤其涉及一种H5页面效果生成视频文件的方法及系统. 背景技术: 现有的视频合成方法均是将视频需要合成的各个元素拆分出来,针对每个元素进行合成视频,复杂度高,一旦需要添加新的动 ...

  6. vue-axios下载文件流blob,ie下载报传递给系统调用的数据区域太小.ie文件流下载报错;文件下载失败将blob的错误信息转换成json格式

    本次下载是后台文件流传输,前端下载,前端将拿到的下载id和名称downloadName传递给下载方法:如果是多个下载,可以采用数组for循环 情景描述: 1.如果符合导出条件, 后端直接返回数据流,如 ...

  7. android shell强制删除文件夹_别再乱清手机内存了,删除这3个“特殊”文件夹!空间释放8GB...

    这样您就可以继续免费收到文章了. 完全都是免费订阅,请放心关注! 绝大部分的"爱国人士",都比较喜欢用安卓手机,尤其是华为手机,然而我们的安卓手机,因为系统的问题,在使用了一段时间 ...

  8. always on sql 收缩日志_如何清空日志: sql 2012在启用了Always on Group后日志文件不断增大(每天几个GB)。...

    如何清空日志:sql2012在启用了AlwaysonGroup后日志文件不断增大(每天几个GB).无法截断及释放空间,导致磁盘空间不足.用先备份日志再收缩文件的方法也是行不能,现在日志每天增长几个.. ...

  9. h5如何上传文件二进制流_前端H5中JS用FileReader对象读取blob对象二进制数据,文件传输...

    HTML5中的Blob对象只是二进制数据的容器,本身并不能操作二进制,故本篇将对其操作对象FileReader进行介绍. FileReader FileReader主要用于将文件内容读入内存,通过一系 ...

最新文章

  1. 「特征工程」与「表示学习」
  2. 流利说流年不利,市值跌去80%,AI教育第一股营收赚钱仍然依赖人工
  3. 文本挖掘预处理流程总结(1)— 中文
  4. 使用TWebBrowser组件保存网页为html和mht文件 收藏
  5. asp.net core 实战之 redis 负载均衡和quot;高可用quot;实现
  6. (pytorch-深度学习系列)CNN的多输入通道和多输出通道
  7. 进度条小飞机移动动画
  8. 小学科学作业计算器c语言,怎样用C实现一个简单科学计算器
  9. Fortran 95 流程控制、循环
  10. Web大学生网页作业成品~美食餐饮网站设计与实现(HTML+CSS+JavaScript)
  11. 在ARM+LINUX上使用pppd拔号上网(GPRS)流程
  12. HttpClient4.x使用中出现的几个问题及解决方法
  13. 概率论排列公式和组合公式实质 压强 : 压力=ps=压强*面积; 万有引力公式:
  14. pacemaker corosync 概念
  15. 快速幂与快速矩阵幂(以大数下的斐波那契数列为例)
  16. 【51nod】2589 快速讨伐
  17. 怎么打开Win10系统的文件夹选项?
  18. 首都经贸大学计算机科学与技术专业,河北经贸大学经济管理学院的计算机科学与技术专业怎么样啊...
  19. C#获取系统空闲时间
  20. 学计算机游戏本,2019游戏笔记本推荐_新学期游戏本准备好了吗-太平洋电脑网

热门文章

  1. GIT的Push和Pull,强制Pull覆盖本地命令
  2. 如何开发一个异常检测系统:异常检测 vs 监督学习
  3. 水平+垂直布局-css (借鉴)
  4. Nancy跨平台开发总结(三)发布到Jexus Web服务器
  5. FastReport问题整理(转)
  6. EAT/IAT Hook
  7. 细学PHP 14 mysql-4
  8. Linux 4.15 rc7,Linux学习之十五(sed命令)-2017-4-23
  9. mysql 5.6 修改端口_mysql5.6.24怎么修改端口号
  10. 微机化远动系统与计算机网络,远动技术教案_第3章_微机监控系统数据通信网络结构及原理.pdf...