IO流的文件输入输出效率问题
IO流的文件输入输出效率问题
第一种方法
我用使用一个数组,把FIleInputStream获取到的二进制数存入这个数组,然后使用FIleOutputStream进行输出
缺点:速度慢
优点:不消耗内存
FileInputStream fis = null;
FileOutputStream fos = null;
try{
fis = new FileInputStream("D:\\IOTest\\侠客.jpg");
fos = new FileOutputStream("D:\\IOTest\\侠客2.jpg");
// 增加缓冲区 提高效率
byte[] bull = new byte[1024];
int temp = 0;
while ((temp = fis.read(bull))!= -1){
// fos.write(temp);
fos.write(bull,0,temp);
}
fos.flush();//刷新 将文件输出到指定的位置
}catch (Exception e){
e.fillInStackTrace();
}finally {
try {
if (fis != null) {
fis.close();
}
if (fos != null){
fos.close();
}
}catch (Exception e){
e.fillInStackTrace();
}
}
第二种方法
我们使用FIleInputStream里的available()方法,这个方法会预估我们读取的资源,然后告诉我们一个合理的空间,一次性输出过去
缺点:在文件大的时候,消耗内存
优点:速度快
FileInputStream fis = null;
FileOutputStream fos = null;
try{
fis = new FileInputStream("D:\\IOTest\\侠客.jpg");
fos = new FileOutputStream("D:\\IOTest\\侠客1.jpg");
// 增加缓冲区 提高效率
byte[] bull = new byte[fis.available()];
fis.read(bull);
fos.write(bull);
fos.flush();//刷新 将文件输出到指定的位置
}catch (Exception e){
e.fillInStackTrace();
}finally {
try {
if (fis != null) {
fis.close();
}
if (fos != null){
fos.close();
}
}catch (Exception e){
e.fillInStackTrace();
}
}
IO流的文件输入输出效率问题的更多相关文章
- Java:IO流与文件基础
Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...
- Java基础教程:IO流与文件基础
Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...
- java io流 对文件夹的操作
java io流 对文件夹的操作 检查文件夹是否存在 显示文件夹下面的文件 ....更多方法参考 http://www.cnblogs.com/phpyangbo/p/5965781.html ,与文 ...
- java io流 创建文件、写入数据、设置输出位置
java io流 创建文件 写入数据 改变system.out.print的输出位置 //创建文件 //写入数据 //改变system.out.print的输出位置 import java.io.*; ...
- IO流----操作文件的9种方法代码实现
IO流----操作文件的9种方法代码实现: 1:使用字节流读写数据: 四种方式: method1: 每次读写一个字节,边读边写: /* * 复制文本文件. * * 数据源:从哪里来 ...
- 38、使用IO流进行文件拷贝
使用IO流进行文件拷贝 需求:在项目的根目录里面创建一个java.txt的文件,然后将这个文件拷贝到file文件夹里面并且重命名为good.txt文件先以流的方式将java.txt文件读取到内存中,然 ...
- Java基础 IO流的文件和目录的五类主要操作
笔记: /** IO流的 文件和目录的操作 * 1.路径需要 需要两个反斜杠 或者一个单斜杠! * 绝对路径:包括盘符在内的完整的路径名! * 相对路径:在当前目录文件下的路径! * 2.File 是 ...
- java 后台通过IO流把文件传到前端并下载
我的业务需求是两个不同的web程序放在不同的服务器上,web程序A要访问到web程序B上传上来的文件,所以用到了这一个IO读取文件的接口 JAVA代码(排版有点问题 已经尽力补救了(:3_ヽ)_) ...
- 什么是IO流 \ 以及文件输入输出
一.IO流的分类: 流按照操作数据的类型分为两种:字节流:字符流. 1.什么是字节流:读取的是文件的二进制数据,不会对二进制做处理,不会解析成看得懂的数据. 2.什么是字符流:读取的是文件的二进制数据 ...
随机推荐
- linux中CentOS配置文件编辑错误撤回
未编辑状态下 U键 撤销 DD 快速删除
- 机器学习基础:用 Lasso 做特征选择
大家入门机器学习第一个接触的模型应该是简单线性回归,但是在学Lasso时往往一带而过.其实 Lasso 回归也是机器学习模型中的常青树,在工业界应用十分广泛.在很多项目,尤其是特征选择中都会见到他的影 ...
- C语言整形转字符串的方法
今天写力扣第九题,里面用到了这个,就做个笔记. 1. char *itoa( int value, char *string,int radix);(stdlib.h) Windows特有 ...
- java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver at java.net.URLClassLoader.findCla ...
- day05 Java网络编程socket 与多线程
java网络编程 java.net.Socket Socket(套接字)封装了TCP协议的通讯细节,是的我们使用它可以与服务端建立网络链接,并通过 它获取两个流(一个输入一个输出),然后使用这两个流的 ...
- 常见加密算法C#实现(一)
前言:最近项目中需要用到字符串加解密,遂研究了一波,发现密码学真的是博大精深,好多算法的设计都相当巧妙,学到了不少东西,在这里做个小小的总结,方便后续查阅. 文中关键词: 明文(P,Plaintext ...
- scrollTop实例
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...
- 一般处理程序ashx接入微信服务器配置
首先在威信后台填写服务器相关配置,这里按照说明直接填写就好了.配置提交前在需要在我们服务端先准备号接受微信请求的url,对请求内容做验证. 1.准备接口配置信息 A.服务器URL 该URL用于开发者接 ...
- LuoguP1799 数列_NOI导刊2010提高 (动态规划)
$ f[j]=max(f[i−1][j],f[i−1][j−1]+(x == j) $ #include <iostream> #include <cstdio> #inclu ...
- 图片系列(6)不同版本上 Bitmap 内存分配与回收原理对比
请点赞关注,你的支持对我意义重大. Hi,我是小彭.本文已收录到 GitHub · AndroidFamily 中.这里有 Android 进阶成长知识体系,有志同道合的朋友,关注公众号 [彭旭锐] ...