IO流复制图片
发布日期:2022-02-26 00:17:42 浏览次数:8 分类:技术文章

本文共 2228 字,大约阅读时间需要 7 分钟。

package cn.itcast_01;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/*
 * 复制图片
 * 
 * 分析:
 *
复制数据,如果我们知道用记事本打开并能够读懂,就用字符流,否则用字节流。
 *
通过该原理,我们知道我们应该采用字节流。
 *
而字节流有4种方式,所以做这个题目我们有4种方式。推荐掌握第4种。
 * 
 * 数据源:
 *
c:\\a.jpg -- FileInputStream -- BufferedInputStream
 * 目的地:
 *
d:\\b.jpg -- FileOutputStream -- BufferedOutputStream
 */
public class CopyImageDemo {
public static void main(String[] args) throws IOException {
// 使用字符串作为路径
// String srcString = "c:\\a.jpg";
// String destString = "d:\\b.jpg";
// 使用File对象做为参数
File srcFile = new File("c:\\a.jpg");
File destFile = new File("d:\\b.jpg");
// method1(srcFile, destFile);
// method2(srcFile, destFile);
// method3(srcFile, destFile);
method4(srcFile, destFile);
}
// 字节缓冲流一次读写一个字节数组
private static void method4(File srcFile, File destFile) throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
srcFile));
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(destFile));
byte[] bys = new byte[1024];
int len = 0;
while ((len = bis.read(bys)) != -1) {
bos.write(bys, 0, len);
}
bos.close();
bis.close();
}
// 字节缓冲流一次读写一个字节
private static void method3(File srcFile, File destFile) throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
srcFile));
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(destFile));
int by = 0;
while ((by = bis.read()) != -1) {
bos.write(by);
}
bos.close();
bis.close();
}
// 基本字节流一次读写一个字节数组
private static void method2(File srcFile, File destFile) throws IOException {
FileInputStream fis = new FileInputStream(srcFile);
FileOutputStream fos = new FileOutputStream(destFile);
byte[] bys = new byte[1024];
int len = 0;
while ((len = fis.read(bys)) != -1) {
fos.write(bys, 0, len);
}
fos.close();
fis.close();
}
// 基本字节流一次读写一个字节
private static void method1(File srcFile, File destFile) throws IOException {
FileInputStream fis = new FileInputStream(srcFile);
FileOutputStream fos = new FileOutputStream(destFile);
int by = 0;
while ((by = fis.read()) != -1) {
fos.write(by);
}
fos.close();
fis.close();
}
}

转载地址:https://blog.csdn.net/tmacyaonb1/article/details/51895237 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:IO流复制文本文件五种方法
下一篇:ArrayList集合中的字符串数据存储到文本文件|文本文件中读取数据到集合

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年03月06日 11时58分28秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

Android网络期末考,Android 面试之「网络基础篇」 2019-04-21
html如何修改按钮样式,css怎么设置按钮样式? 2019-04-21
nextcloud如何填写数据库_OMV利用Docker配置nextcloud,实现个人网盘的搭建! 2019-04-21
点击定位到指定位置_使用Word书签功能轻松定位到指定位置或某个特定内容 2019-04-21
图像控制点 形变_几何校正中控制点的选取.doc 2019-04-21
cpu超线程优缺点_今天看了下百度百科!看到了超线程的优缺点啊!转! 2019-04-21
python2和3安装后怎样切换 mac_Mac下安装配置Python2和Python3并相互切换使用 2019-04-21
python错误代码40035_python-(matplotlib.pyplot)散点图轴的顺序错误 2019-04-21
java servlet 返回 web_javaWEB之Servlet 2019-04-21
php 打印出心形,利用php输出不同的心形图案_PHP 2019-04-21
php表格怎么加粉色,把知识点用表格形式表示出来,鼠标经过一行的时候背景颜色会变成粉色... 2019-04-21
oracle 时间戳样式,oracle日期时间型timestamp的深入理解 2019-04-21
linux命令column,Linux column命令详解(每日一令之二十一) 2019-04-21
centos linux7 开启桌面命令,centos7如何在桌面打开终端 2019-04-21
linux ha 磁盘心跳,HACMP 5.4配置磁盘心跳(转载) 2019-04-21
linux usb-skeleton,Linux USB驱动程序(4)----usb-skeleton.c分析 2019-04-21
C语言编程绘制一元二次函数,c语言怎么画出一元二次函数图像 2019-04-21
使用c 脚本语言制作菜单,VC动态生成菜单项的实现方法 2019-04-21
华为鸿蒙系统使用技巧,【图片】华为鸿蒙系统的厉害之处在于 你可能非用不可!【手机吧】_百度贴吧... 2019-04-21
Android输入法方法,Android的输入法系统框架原理 2019-04-21