java 21 - 9 复制图片的4种方式

时间:2022-08-28 12:49:04

需求:复制图片
分析:
  因为图片我们用记事本打开后无法读懂,所以用字节流
  并且字节流复制有4种方式,所以我们尝试4种方式。
推荐第四种:缓冲字节流一次读取一个字节数组

首先写main方法:

 public static void main(String[] args) throws IOException {
// 上次使用了字符串作为路径,这次我们使用File作为路径
File start = new File("C:\\Users\\Administrator\\Desktop\\新建文件夹\\艾斯.jpg");
File end = new File("C:\\Users\\Administrator\\Desktop\\新建文件夹\\火拳.jpg");
//method1(start,end);
//method2(start,end);
//method3(start,end);
method4(start,end); }

第一种:基本字节流一次读取一个字节

     private static void method1(File start, File end) throws IOException {
// 基本字节流一次读取一个字节
FileInputStream fi = new FileInputStream(start);
FileOutputStream fo = new FileOutputStream(end);
int len = 0;
while((len = fi.read()) != -1){
fo.write(len);
}
fi.close();
fo.close(); }

第二种:基本字节流一次读取一个字节数组

     private static void method2(File start, File end) throws IOException {
// 基本字节流一次读取一个字节数组
FileInputStream fi = new FileInputStream(start);
FileOutputStream fo = new FileOutputStream(end);
byte[] by = new byte[1024];
int len = 0;
while((len = fi.read(by)) != -1){
fo.write(by,0,len);
}
fi.close();
fo.close();
}

第三种:缓冲字节流一次读取一个字节

     private static void method3(File start, File end) throws IOException {
// 缓冲字节流一次读取一个字节
BufferedInputStream bfi = new BufferedInputStream(new FileInputStream(start));
BufferedOutputStream bfo = new BufferedOutputStream(new FileOutputStream(end));
int len = 0;
while((len = bfi.read()) != -1){
bfo.write(len);
}
bfi.close();
bfo.close();
}

第四种:缓冲字节流一次读取一个字节数组

     private static void method4(File start, File end) throws IOException {
// 缓冲字节流一次读取一个字节数组
BufferedInputStream bfi = new BufferedInputStream (new FileInputStream(start));
BufferedOutputStream bfo = new BufferedOutputStream(new FileOutputStream(end));
byte[] by = new byte[1024];
int len = 0;
while((len = bfi.read(by)) != -1){
bfo.write(by,0,len);
}
bfi.close();
bfo.close(); }

java 21 - 9 复制图片的4种方式的更多相关文章

  1. java 21 - 8 复制文本文件的5种方式

    需求:复制文本文件 分析: 由于文本文件我们用记事本打开后可以读懂,所以使用字符流. 而字符流有5种复制的方式: 首先写main方法 public static void main(String[] ...

  2. Java基础知识强化之IO流笔记44:IO流练习之 复制图片的 4 种方式案例

    1. 复制图片的 4 种方式案例: 分析: 复制数据,如果我们知道用记事本打开并能够读懂,就用字符流,否则用字节流. 通过该原理,我们知道我们应该采用字节流. 而字节流有4种方式,所以做这个题目我们有 ...

  3. Java基础知识强化之IO流笔记43:IO流练习之 复制文本文件的 5 种方式案例

     1. 案例分析: 分析: 复制数据,如果我们知道用记事本打开并能够读懂,就用字符流,否则用字节流. 通过该原理,我们知道我们应该采用字符流更方便一些. 而字符流有5种方式,所以做这个题目我们有5种方 ...

  4. Java反射获取class对象的三种方式,反射创建对象的两种方式

    Java反射获取class对象的三种方式,反射创建对象的两种方式 1.获取Class对象 在 Java API 中,提供了获取 Class 类对象的三种方法: 第一种,使用 Class.forName ...

  5. js 复制文本的四种方式

    js 复制文本的四种方式 一.总结 一句话总结:js文本复制主流方法:document的execCommand方法 二.js 复制文本的四种方式 纯 转载复制,非原创 原地址:http://www.c ...

  6. jQuery 实现图片放大两种方式

    jQuery 实现图片放大两种方式 一.利用css样式表实现,多用于后台显示 1.这种比较简单,利用dom元素的hover实现样式切换 <style> img{ cursor: point ...

  7. Java使用基本字节流OutputStream的四种方式对于数据复制(文本,音视频,图像等数据)

    //package 字符缓冲流bufferreaderDemo; import java.io.BufferedOutputStream; import java.io.FileInputStream ...

  8. java IO流复制图片

    一.使用字节流复制图片 //字节流方法 public static void copyFile()throws IOException { //1.获取目标路径 //(1)可以通过字符串 // Str ...

  9. java IO流 复制图片

    (一)使用字节流复制图片 //字节流方法 public static void copyFile()throws IOException { //1.获取目标路径 //(1)可以通过字符串 // St ...

随机推荐

  1. iOS-技巧性总结

    1.AFN与ASI对比 -- AFN1. 基于 NSURLConnection & NSURLSession 进行的封装2. 使用简单3. 提供了自动的序列化 & 反序列化支持! AF ...

  2. 4&period;Single Number &amp&semi;&amp&semi; Single Number (II)

    Single Number: 1. Given an array of integers, every element appears twice except for one. Find that ...

  3. Tomcat7&period;x 与 Tomcat6&period;x

    试用 Tomcat7.x 与 Tomcat6.x 的明显不同 + Context 填写方法 + 默认应用配置方法 标签: tomcat数据库驱动程序数据库虚拟机jdbcjavascript 2012- ...

  4. MyISAM表杂记实验

    一.本文说明 由于刚学mysql所以动手做了一些实验. 二.实验内容 1.验证MyISAM有AUOT_INCREMENT coloumn功能 ----在这里是对现有表t,增加一个主键----mysql ...

  5. uva Fire&excl;

    算法:BFS Joe works in a maze. Unfortunately, portions of the maze have caught on fire, and the owner o ...

  6. centos精简系统 源码安装客户端git

    CentOS的yum源中git版本比较低,需要最新版本git,只能自己编译安装,现在记录下编译安装的内容,留给自己备忘. 对于精简型的centos系统,会缺少很多依赖包和插件,要源码安装客户端git, ...

  7. 关于Java解压文件的一些坑及经验分享&lpar;MALFORMED异常&rpar;

    文章也已经同步到我的csdn博客: http://blog.csdn.net/u012881584/article/details/72615481 关于Java解压文件的一些坑及经验分享 就在本周, ...

  8. &lbrack;译&rsqb;ASP&period;NET Core 2&period;0 路由引擎

    问题 ASP.NET Core 2.0的路由引擎是如何工作的? 答案 创建一个空项目,为Startup类添加MVC服务和请求中间件: public void ConfigureServices(ISe ...

  9. OC学习12——字符串、日期、日历

    前面主要学习了OC的基础知识,接下来将主要学习Foundation框架的一些常用类的常用方法.Foubdation框架是Cocoa编程.IOS编程的基础框架,包括代表字符串的NSString(代表字符 ...

  10. 在他机上还原DB2的备份

    在服务器获取得到db2的备份文件,拷贝到d盘db2_backup目录下面 在windows下的时间戳标记为时间目录名+文件名.001前面的 "2014022\0001006.001&quot ...