【java】文件复制的简单实现
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】文件复制的简单实现的更多相关文章
- IO复制多级目录 控制台输入文件目录然后把目录下java文件复制到 D: 并统计java个数
package cn.itcast_05; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; impor ...
- java基础 File 递归删除文件夹中所有文件文件夹 目录(包含子目录)下的.java文件复制到e:/abc文件夹中, 并统计java文件的个数
File 递归删除文件夹中所有文件文件夹 package com.swift.kuozhan; import java.io.File; import java.util.Scanner; /*键盘录 ...
- Java算法面试题:编写一个程序,将e:\neck目录下的所有.java文件复制到e:\jpg目录下,并将原来文件的扩展名从.java改为.jpg
package com.swift; import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; i ...
- Java基础面试操作题: File IO 文件过滤器FileFilter 练习 把一个文件夹下的.java文件复制到另一个文件夹下的.txt文件
package com.swift; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File ...
- Java文件复制与读写
函数介绍 public String readLine():每次读取文件的一行,当文件读取完毕时,返回null public int read(byte[] b):将文件内容读取到字节数组b ...
- java 文件复制
java实现文件复制 CreateTime--2017年9月7日15:04:48 Author:Marydon 1.需求 根据原文件复制一份到指定位置 2.代码实现 需要导入: import ja ...
- java 文件复制操作
本案例采用第三方 jar 包完成,commons-io-2.5.jar, 这个 jar 对文件操作非常方便,大家可以尝试使用一下. 这里贴一个简单的 demo 供大家使用 import java.io ...
- Java文件复制删除操作合集
import java.io.*; public class FileOperate { public FileOperate() { } /** * 新建目录 * @param folderPath ...
- java文件复制函数
在写代码中,经常会需要复制文件.这时候就可以把这些函数放到工具类里面. 下面是一个复制文件的函数: public class CopyFileUtil { private static String ...
随机推荐
- javaScript 的AMD
转载:http://www.cnblogs.com/happyPawpaw/archive/2012/05/31/2528864.html#undefined 1. AMD的由来 前端技术虽然在不断发 ...
- 三、Hadoop学习笔记————从MapReduce到Yarn
Yarn减轻了JobTracker的负担,对其进行了解耦
- [对smartMenu.js改进] 解决右键菜单栏在边缘弹出后,移出视图区域无法操作的问题
当用户在视图边缘(如右下角)右键召唤菜单栏的时候,菜单仍然从选中元素的右下角弹出,这时二级菜单栏一般都离开了视图区域,用户无法进一步操作. 这个问题挺常见的,原作者的留言板: 但是作者应该是已经不再维 ...
- win10下Anaconda 2 和 3 共存安装,并切换jupyter notebook和Pycharm中的对应版本
win10下Anaconda 2 和 3 共存安装,并切换jupyter notebook和Pycharm中的对应版本 zoerywzhou@163.com http://www.cnblogs.co ...
- 【转】Swig 使用指南
原文链接:https://www.cnblogs.com/elementstorm/p/3142644.html 如何使用 API swig.init({ allowErrors: false, au ...
- 在O(n)时间复杂度内找到出现超过一半的数
#include<iostream> using namespace std; bool solver(const int a[],const int n, int & num) ...
- SpringMVC集成Shiro、读取数据库操作权限
1.Maven添加Shiro所需的jar包 <dependency> <groupId>org.apache.shiro</groupId> <artifac ...
- 【17-06-19】Java进阶自测:面向对象基础知识掌握了吗?(附答案及个人解析)
描述 题目和答案来自于阿里云大学 - 知乎专栏 题目 现在有如下一段代码 public class Test { public int aMethod() { static int i=0; i++; ...
- 关于MVC Ajax.BeginForm()异步上传文件的问题
问题描述: 如果用juqery原生的异步上传方式,只要如下方法即可 $.ajax({ type: "GET", url: "test.json", data: ...
- Mysql实现企业级数据库主从复制架构实战
场景 公司规模已经形成,用户数据已成为公司的核心命脉,一次老王一不小心把数据库文件删除,通过mysqldump备份策略恢复用了两个小时,在这两小时中,公司业务中断,损失100万,老王做出深刻反省,公司 ...