java 21 - 9 复制图片的4种方式
需求:复制图片
分析:
因为图片我们用记事本打开后无法读懂,所以用字节流
并且字节流复制有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种方式的更多相关文章
- java 21 - 8 复制文本文件的5种方式
需求:复制文本文件 分析: 由于文本文件我们用记事本打开后可以读懂,所以使用字符流. 而字符流有5种复制的方式: 首先写main方法 public static void main(String[] ...
- Java基础知识强化之IO流笔记44:IO流练习之 复制图片的 4 种方式案例
1. 复制图片的 4 种方式案例: 分析: 复制数据,如果我们知道用记事本打开并能够读懂,就用字符流,否则用字节流. 通过该原理,我们知道我们应该采用字节流. 而字节流有4种方式,所以做这个题目我们有 ...
- Java基础知识强化之IO流笔记43:IO流练习之 复制文本文件的 5 种方式案例
1. 案例分析: 分析: 复制数据,如果我们知道用记事本打开并能够读懂,就用字符流,否则用字节流. 通过该原理,我们知道我们应该采用字符流更方便一些. 而字符流有5种方式,所以做这个题目我们有5种方 ...
- Java反射获取class对象的三种方式,反射创建对象的两种方式
Java反射获取class对象的三种方式,反射创建对象的两种方式 1.获取Class对象 在 Java API 中,提供了获取 Class 类对象的三种方法: 第一种,使用 Class.forName ...
- js 复制文本的四种方式
js 复制文本的四种方式 一.总结 一句话总结:js文本复制主流方法:document的execCommand方法 二.js 复制文本的四种方式 纯 转载复制,非原创 原地址:http://www.c ...
- jQuery 实现图片放大两种方式
jQuery 实现图片放大两种方式 一.利用css样式表实现,多用于后台显示 1.这种比较简单,利用dom元素的hover实现样式切换 <style> img{ cursor: point ...
- mysql复制表的两种方式
mysql复制表的两种方式. 第一.只复制表结构到新表 create table 新表 select * from 旧表 where 1=2 或者 create table 新表 like 旧表 第二 ...
- Java使用基本字节流OutputStream的四种方式对于数据复制(文本,音视频,图像等数据)
//package 字符缓冲流bufferreaderDemo; import java.io.BufferedOutputStream; import java.io.FileInputStream ...
- java IO流复制图片
一.使用字节流复制图片 //字节流方法 public static void copyFile()throws IOException { //1.获取目标路径 //(1)可以通过字符串 // Str ...
随机推荐
- 从" ThinkPHP 开发规范 "看 PHP 的命名规范和开发建议
稍稍水一篇博客,摘抄自Think PHP 的开发规范,很有引导性,我们可以将这些规范实践到原生 PHP 中. 命名规范 使用ThinkPHP开发的过程中应该尽量遵循下列命名规范: 类文件都是以.cla ...
- DirectX 9 SDK安装后在vs2010里编译BaseClasses出错问题解决方法
打开你的dx的sdk安装目录,例如: D:/DX90SDK/Samples/C++/DirectShow/ 这里就有一个叫baseclasses的工程,为安全起见,请先备份此工程. 1,双击basec ...
- SQL数据库基础(三)
认识数据库备份和事务日志备份 数据库备份与日志备份是数据库维护的日常工作,备份的目的是在于当数据库出现故障或者遭到破坏时可以根据备份的数据库及事务日志文件还原到最近的时间点将损失降到最低点. 数据库备 ...
- 项目、SVN clean的一些事
1.如果你发现你的文件修改了.Tomcat也重新了,但访问的还是旧的文件,这个时候你需要clean下你的项目. Clean will discard all build problems and bu ...
- SQLserver2008如何把表格变量传递到存储过程中
在Microsoft SQL Server 2008中,你可以实现把表格变量传递到存储过程中,如果变量可以被声明,那么它就可以被传递.下面我们来具体介绍如何把表格变量(包括内含的数据)传递到存储过程和 ...
- ng-click
使用ng-clcik代码是发现其内的a标签失效: 于是测试下,发现绑定在document上的click事件在点击ng-click绑定的元素上也会失效: <div ng-click="c ...
- 扩展SharePoint链接字段
默认SharePoint中的链接字段有很多限制,例如 输入文字的时候只能录入255个字符 链接显示的是文字 点击链接后只能在当前页面打开链接 - - - - - - -- - - - - - - ...
- 【原】macbook不睡眠的排查与解决
这几天突然发现手上的macbook pro笔记本不能睡眠了,就算合上盖子也是如此.有没有进入睡眠可以观察右下角的呼吸灯,如果呼吸灯常亮则说明有问题.所谓“工欲善其事,必先利其器”,攻城狮想敲更多更好的 ...
- [VMware]设置VM虚拟机随系统自动启动
设置步骤: 1.找到VM的安装路径,右键vmware发送到桌面快捷方式 2.右键桌面快捷方式的属性,看到目标的属性框 3.找到需要自启动的虚拟机路径,如: D:\QC_VM\Clone of Wind ...
- ssh key scp命令 scp无密码传输
ssh ~/.ssh/目录下通常有个文件 [root@user .ssh]# ll 总用量 16 -rw-------. 1 root root 552 11月 16 02:48 authorized ...