package 文件操作;

 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 TestCopy {
public static void main(String[] args) throws IOException {
copy("D:\\com\\test.txt","C:\\com\\dest.txt");
}
public static void copy(String source,String dest) throws IOException{
File fileS=new File(source);
File fileD=new File(dest);
if(fileS.exists()){
InputStream in=new FileInputStream(fileS);
int len=(int)fileS.length();
byte[] b=new byte[len];
in.read(b);//一次性读入
in.close(); if(!(fileD.exists())){
fileD.getParentFile().mkdirs();
fileD.createNewFile();
}
OutputStream out=new FileOutputStream(fileD);
out.write(b);//一次性写出
out.close();
}else{
System.out.println(source+"文件不存在!");
}
}
}

一次性读入和写出

 package 文件操作;

 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 TestCopy {
public static void main(String[] args) throws IOException {
copy(args[0],args[1]);
}
public static void copy(String source,String dest) throws IOException{
File fileS=new File(source);
File fileD=new File(dest);
if(fileS.exists()){
InputStream in=new FileInputStream(fileS);
if(!(fileD.exists())){
fileD.getParentFile().mkdirs();
// fileD.createNewFile();//此语句可省,会自动创建
}
OutputStream out=new FileOutputStream(fileD);
int b=0;
while((b=in.read())!=-1)
out.write(b);//一次读入写出一个字节,此方式太慢!
in.close();
out.close();
}else{
System.out.println(source+"文件不存在!");
}
}
}

一次读入写出一个字节

 package 文件操作;

 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 TestCopy {
public static void main(String[] args) throws IOException {
if(args.length!=2){
System.out.println("源文件或目标文件个数不对,请确认!");
System.exit(1);
}
File sourceFile=new File(args[0]);
if(sourceFile.exists()){
File destFile=new File(args[1]);
if(!destFile.getParentFile().exists())//只需要判断目录是否存在,因为目录不存在不会自动创建,文件不存在会自动创建
destFile.getParentFile().mkdirs();
InputStream in=new FileInputStream(sourceFile);
OutputStream out=new FileOutputStream(destFile,true);
byte[] bytes=new byte[10240];
int len=0;
while((len=in.read(bytes))!=-1)
out.write(bytes,0,len);
in.close();
out.close();
}else{
System.out.println("源文件不存在!");
}
}
}

改善版

【java】文件复制的简单实现的更多相关文章

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

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

  2. java基础 File 递归删除文件夹中所有文件文件夹 目录(包含子目录)下的.java文件复制到e:/abc文件夹中, 并统计java文件的个数

    File 递归删除文件夹中所有文件文件夹 package com.swift.kuozhan; import java.io.File; import java.util.Scanner; /*键盘录 ...

  3. Java算法面试题:编写一个程序,将e:\neck目录下的所有.java文件复制到e:\jpg目录下,并将原来文件的扩展名从.java改为.jpg

    package com.swift; import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; i ...

  4. Java基础面试操作题: File IO 文件过滤器FileFilter 练习 把一个文件夹下的.java文件复制到另一个文件夹下的.txt文件

    package com.swift; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File ...

  5. Java文件复制与读写

    函数介绍 public String readLine():每次读取文件的一行,当文件读取完毕时,返回null     public int read(byte[] b):将文件内容读取到字节数组b ...

  6. java 文件复制

      java实现文件复制 CreateTime--2017年9月7日15:04:48 Author:Marydon 1.需求 根据原文件复制一份到指定位置 2.代码实现 需要导入: import ja ...

  7. java 文件复制操作

    本案例采用第三方 jar 包完成,commons-io-2.5.jar, 这个 jar 对文件操作非常方便,大家可以尝试使用一下. 这里贴一个简单的 demo 供大家使用 import java.io ...

  8. Java文件复制删除操作合集

    import java.io.*; public class FileOperate { public FileOperate() { } /** * 新建目录 * @param folderPath ...

  9. java文件复制函数

    在写代码中,经常会需要复制文件.这时候就可以把这些函数放到工具类里面. 下面是一个复制文件的函数: public class CopyFileUtil { private static String ...

随机推荐

  1. RunLoop想入门,看这篇就够了

    前言 刚刚听到RunLoop的时候我也是一脸懵逼,这是什么,有什么用呢,逼格貌似还挺高.然后就开始尝试去搞懂它,去找博客,但是几乎所有的博客都是枯燥乏味的,都是讲概念,然后给个实例,对于我这个小白来说 ...

  2. get和post与服务端的交互方式

    在网上看了不少关于get和post的文章,看到博主这个,现在手录下来. 原博客地址:http://www.cnblogs.com/warrior4236/p/5675756.html 一:B/S结构, ...

  3. 基于 HTML5 WebGL 的 3D “弹力”布局

    分子力(molecular force),又称分子间作用力.范得瓦耳斯力,是指分子间的相互作用.当二分子相距较远时,主要表现为吸引力,这种力主要来源于一个分子被另一个分子随时间迅速变化的电偶极矩所极化 ...

  4. vue-cli 如何配置sass

    第一步:安装对应的node模块 npm install node-sass --save-dev npm install sass-loader --save-dev 第二步:在webpack.bas ...

  5. P2915 [USACO08NOV]奶牛混合起来Mixed Up Cows

    题目描述 约翰家有N头奶牛,第i头奶牛的编号是Si,每头奶牛的编号都是唯一的.这些奶牛最近 在闹脾气,为表达不满的情绪,她们在挤奶的时候一定要排成混乱的队伍.在一只混乱的队 伍中,相邻奶牛的编号之差均 ...

  6. postgresql的psql常用命令-4

    psql是PostgreSQL的一个命令行交互式客户端工具 1. 查看postgresql账号 [root@localhost ~]#cat /etc/passwdroot:x:0:0:root:/r ...

  7. 《java.util.concurrent 包源码阅读》 结束语

    <java.util.concurrent 包源码阅读>系列文章已经全部写完了.开始的几篇文章是根据自己的读书笔记整理出来的(当时只阅读了部分的源代码),后面的大部分都是一边读源代码,一边 ...

  8. A:点排序-poj

    A:点排序 总时间限制:  1000ms 内存限制:  65536kB 描述 给定一个点的坐标(x, y),在输入的n个点中,依次计算这些点到指定点的距离,并按照距离进行从小到大排序,并且输出点的坐标 ...

  9. Mysql第一周

    前言:好久不见,我又来写博客拉.上个月只写了几篇django-rest-framework的,而且还是根据官网的英文写的.干货不多,内心还是有点羞耻的…… 简单说下我11月去干嘛了.11月初美图给我发 ...

  10. canvas画一个时钟

    效果图如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...