需求:源和目标!

那么我们需要源文件和目标文件!

构建管道的时候就需要两个:输出流和输入流管道!

Eg:

package july7file;

//java7开始的自动关闭资源

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

public class Demo8 {

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

File src = new File("E:/自荐信.doc");

File tar = new File("E:/自荐信1.doc");

copy(src, tar);

System.out.println("Well done !");

}

public static void copy(File src, File tar) throws IOException {

try (InputStream is = new FileInputStream(src);

OutputStream os = new FileOutputStream(tar);) {

byte[] b = new byte[1024];

int len;

while ((len = is.read(b)) != -1) {

os.write(b);

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

题目:复制图片!

package july7file;

/**

* 文件的复制!对于本题而言,因为是图片,所以要想读出来,必须使用字节流!

* 字符流必须关闭资源,而字节流可以不关闭资源!但是还是建议全部的关闭,因为也不会出错,这是关闭资源的习惯!

* 另外:最常用的是字节流,因为字节流在内存中不需要缓冲区,图片,mp3等都是字节流!但是对于文字的话还是字符流比较好;

* 因为字符流可以避免在字节流操作文字时出现的乱码现象(正好读取到了自定义缓冲区的分割处);

*/

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.OutputStream;

public class Demo7 {

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

File src = new File("D:/java.jpg");

File tar = new File("D:/meinv.jpg");

copy(src,tar);

System.out.println("复制完成!");

}

public static void copy(File src,File tar) throws Exception{

/*      Reader r = new FileReader(src);

Writer w = new FileWriter(tar);*/

/*if(!src.exists()){

throw new Exception("对不起,源文件不存在!");

}*/

InputStream in = new FileInputStream(src);

OutputStream os = new FileOutputStream(tar);

byte []c = new byte[1024];

int len;

while((len = in.read(c)) != -1){

os.write(c);

}

/*  w.close();

r.close();*/

}

}

我的总结:对于图片的复制,可以使用字符流,但是这样的话文件可以复制成功但是无法读取!

java 文件拷贝的更多相关文章

  1. Java文件拷贝方式

    原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11444284.html 利用java.io类库,直接为源文件构建一个FileInputStream读取 ...

  2. Java文件拷贝

    package com.lxm.demos; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io. ...

  3. IO复制多级目录 控制台输入文件目录然后把目录下java文件复制到 D: 并统计java个数

    package cn.itcast_05; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; impor ...

  4. Java学习-045-目录中文件拷贝

    挺晚的了,直接上码.敬请各位小主参阅,若有不足之处,敬请指正,非常感谢! 目录文件拷贝源码: /** * <strong>目录拷贝</strong><br> * & ...

  5. 使用Java字节流拷贝文件

    本文给出使用Java字节流实现文件拷贝的例子 package LearnJava; import java.io.*; public class FileTest { public static vo ...

  6. Java IO和Java NIO在文件拷贝上的性能差异分析

    1.  在JAVA传统的IO系统中,读取磁盘文件数据的过程如下: 以FileInputStream类为例,该类有一个read(byte b[])方法,byte b[]是我们要存储读取到用户空间的缓冲区 ...

  7. java对文件拷贝的简单操作

    package fileInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNot ...

  8. Java实现文件拷贝的4种方法.

    原文地址:http://blog.csdn.net/ta8210/article/details/2073817 使用 java 进行文件拷贝 相信很多人都会用,,不过效率上是否最好呢? 最近看了看N ...

  9. (java)从零开始之--异常处理(以文件拷贝为例)

    开发过程中避免不了对异常的处理,但是异常的处理又不能乱throw 下面是简单的抛异常处理 public static void CopyFile(String souFile,String dirFi ...

随机推荐

  1. 来自 Spring Cloud 官方的消息,Spring Cloud Alibaba 即将毕业

    2019 年 7 月 24 日晚,Spring Cloud 官方发布公告: 仓库迁移是官方决定 Spring Cloud Alibaba 即将毕业 根据官方最新的发版规则,我们会把孵化器中的 Spri ...

  2. 数据挖掘python,java

    互联网公司zamplus诚聘以下职位: (1)数据挖掘工程师 (Location:上海.北京) 岗位职责: 1. 研究基于sponsored search, content match和behavio ...

  3. mongoDB端口启动失败原因

    删除以下文件: (所以数据会丢失,需要重新创建数据库)

  4. jdbc框架-dbutils的简单使用

    jdbc框架-dbutils的简单使用 dbutils:是apache组织的一个工具类,jdbc的框架,更方便我们使用 使用步骤: 1.导入jar包(commons-dbutils-1.4.jar) ...

  5. Linux配置redis开机启动(CentOS 7)

    https://blog.csdn.net/qq_31803503/article/details/79246205 本次配置linux版本是CentOS 7 首先将  redis-3.2.3/uti ...

  6. iOS应用国际化教程

    开发一款伟大的iOS应用程序是件了不起的事情,但是还有比优秀的代码.华丽的设计以及直观化交互更多的事要做.跻身在App Store排行榜前列还需要正合时宜的产品营销.扩大用户群的能力.实用的工具以及尽 ...

  7. laravel 博客项目部署到Linux系统后报错 权限都设置为777,仍然报错没有权限

    阿里工程师最后给出解决方案.

  8. 原生js扫雷代码

    思路要点: 1. 随机地雷放到一个二维数组中: 2. 每一个格子要统计周围有几颗雷: 3. 每一个格子是否处于打开状态,用于判断是否赢得游戏: 4. 如果点击到周围没有雷的地方,把周围的打开: 具体的 ...

  9. 亲测的orabbix监控Oracle过程

    网上教程很多,但普遍较老,担心新版本的变化,于是亲自测试了一下,记录过程如下: 一.环境 Centos7.3 192.168.56.104 Oracle安装在windows下,192.168.56.1 ...

  10. github怎样改动源代码并进行提交方法小结

    /*********************************************************************  * Author  : Samson  * Date   ...