您的位置:

java复制文件nio复制多个文件,java复制一个文件

本文目录一览:

java复制文件夹以及其中的文件

这是 我修改后的,能使用。 package configuration;import java.io.*;

/**

* @author Administrator

*

* Class Function:

*/

public class copyDirectory {

public void startCopy(String topath,String frompath) throws IOException {

File copy=new File(topath); //拷贝到何处 路径

File bycopy=new File(frompath); //从何处拷贝 路径

//创建备份目录

copy.mkdirs();

//开始拷贝

File[] file=bycopy.listFiles();

try{

if(file.length!=0){

for(int i=0;ifile.length;i++){

if(file[i].isFile()){

FileInputStream input=new FileInputStream(file[i]);

FileOutputStream output=new FileOutputStream(copy+"\\"+file[i].getName());

byte[] b=new byte[1024*10];

int len=input.read(b);

System.out.println("=========================================是文件================================================================");

System.out.println("拷贝"+topath+"\\"+file[i].getName());

System.out.println("目标"+frompath+"\\"+file[i].getName());

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

output.write(b,0,len);

}

output.flush();

output.close();

input.close();

}

if(file[i].isDirectory()){

copyDirectiory(copy+"\\"+file[i].getName(),bycopy+"\\"+file[i].getName());

System.out.println("=========================================是目录================================================================");

System.out.println("拷贝"+topath+"\\"+file[i].getName());

System.out.println("目标"+frompath+"\\"+file[i].getName());

}

}

}

}catch(Exception e){

}finally{

file=null;

}

}

public void copyDirectiory(String topath,String frompath) throws IOException{

File copy=new File(topath);

File bycopy=new File(frompath);

//创建拷贝目录

copy.mkdirs();

//开始拷贝

File[] file=bycopy.listFiles();

try{

if(file.length!=0){

for(int i=0;ifile.length;i++){

if(file[i].isFile()){

FileInputStream input=new FileInputStream(file[i]);

FileOutputStream output=new FileOutputStream(copy+"\\"+file[i].getName());

byte[] b=new byte[1024*5];

int len;

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

output.write(b,0,len);

}

output.flush();

output.close();

input.close();

}

if(file[i].isDirectory()){

copyDirectiory(copy+"\\"+file[i].getName(),bycopy+"\\"+file[i].getName());

}

}

}

}catch(Exception e){

}finally{

file=null;

}

}}

java如何拷贝一个文件夹内的多个指定的文件到另外一个指定的文件夹下?

你好:

请看代码:

/**

* 把一个文件夹里的所有文件包括文件夹 一并原样拷贝到另一个目录中;

*@author shuishui

*/  

import java.io.File;   

import java.io.FileInputStream;   

import java.io.FileNotFoundException;   

import java.io.FileOutputStream;   

import java.io.IOException;   

import java.io.InputStream;   

import java.io.OutputStream;   

  

public class CopyDir001 {   

  

    public static File dirFrom;   

    public static File dirTo;   

  

    // 目标路径创建文件夹   

    public void listFileInDir(File file) {   

         File[] files = file.listFiles();   

        for (File f : files) {   

             String tempfrom = f.getAbsolutePath();   

             String tempto = tempfrom.replace(dirFrom.getAbsolutePath(),   

                     dirTo.getAbsolutePath()); // 后面的路径 替换前面的路径名   

            if (f.isDirectory()) {   

                 File tempFile = new File(tempto);   

                 tempFile.mkdirs();   

                 listFileInDir(f);   

             } else {   

                 System.out.println("源文件:" + f.getAbsolutePath());   

                //   

                int endindex = tempto.lastIndexOf("\\");// 找到"/"所在的位置   

                 String mkdirPath = tempto.substring(0, endindex);   

                 File tempFile = new File(mkdirPath);   

                 tempFile.mkdirs();// 创建立文件夹   

                 System.out.println("目标点:" + tempto);   

                 copy(tempfrom, tempto);   

             }   

         }   

     }   

    /**

      * 封装好的文件拷贝方法

      */  

    public void copy(String from, String to) {   

        try {   

             InputStream in = new FileInputStream(from);   

             OutputStream out = new FileOutputStream(to);   

  

            byte[] buff = new byte[1024];   

            int len = 0;   

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

                 out.write(buff, 0, len);   

             }   

             in.close();   

             out.close();   

         } catch (FileNotFoundException e) {   

             e.printStackTrace();   

         } catch (IOException e) {   

             e.printStackTrace();   

         }   

     }   

  

    public static void main(String[] args) {   

         File fromfile = new File("e:\\shui\\test");// 源文件夹   

         File tofile = new File("e:\\Jying\\shui");// 目标   

  

         CopyDir001 copy = new CopyDir001();   

        // 设置来源去向   

         copy.dirFrom = fromfile;   

         copy.dirTo = tofile;   

         copy.listFileInDir(fromfile);   

  

     }   

}

java中复制文件的两种方法是什么

第一种方法:古老的方式

public static long forJava(File f1,File f2) throws Exception{

long time=new Date().getTime();

int length=2097152;

FileInputStream in=new FileInputStream(f1);

FileOutputStream out=new FileOutputStream(f2);

byte[] buffer=new byte[length];

while(true){

int ins=in.read(buffer);

if(ins==-1){

in.close();

out.flush();

out.close();

return new Date().getTime()-time;

}else

out.write(buffer,0,ins);

}

}

方法的2参数分别是原始文件,和拷贝的目的文件.这里不做过多介绍.

实现方法很简单,分别对2个文件构建输入输出流,并且使用一个字节数组作为我们内存的缓存器, 然后使用流从f1 中读出数据到缓存里,在将缓存数据写到f2里面去.这里的缓存是2MB的字节数组

第2种方法:使用NIO中的管道到管道传输

public static long forTransfer(File f1,File f2) throws Exception{

long time=new Date().getTime();

int length=2097152;

FileInputStream in=new FileInputStream(f1);

FileOutputStream out=new FileOutputStream(f2);

FileChannel inC=in.getChannel();

FileChannel outC=out.getChannel();

int i=0;

while(true){

if(inC.position()==inC.size()){

inC.close();

outC.close();

return new Date().getTime()-time;

}

if((inC.size()-inC.position())20971520)

length=(int)(inC.size()-inC.position());

else

length=20971520;

inC.transferTo(inC.position(),length,outC);

inC.position(inC.position()+length);

i++;

}

}

实现方法:在第一种实现方法基础上对输入输出流获得其管道,然后分批次的从f1的管道中像f2的管道中输入数据每次输入的数据最大为2MB

java 编写FileCopy类,要求将1个文件的内容同时复制成多个文件.使用命令行完成文件名的输入。

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.nio.channels.FileChannel;

import java.util.Date;

import java.util.Scanner;

public class FileCopy {

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

File f1 = new File("D:\\test\\test.txt");

String path = "D:\\test\\";

System.out.print("请输入要复制的文件个数:");

Scanner sc = new Scanner(System.in);

int cnt = sc.nextInt();

for(int i = 0 ; i cnt ; i++){

System.out.print("请输入第"+(i+1)+"个文件名:");

String newName = sc.next();

System.out.println("第"+(i+1)+"个文件的名字为:"+newName+".txt");

File f2 = new File(path+newName+".txt");

forTransfer(f1,f2);

}

}

/**

* @author Samsung

* @date 2017年4月20日15:20:25

* 实现文件内容的复制

*

* */

public static long forTransfer(File f1,File f2) throws Exception{

long time=new Date().getTime();

int length=2097152;

FileInputStream in=new FileInputStream(f1);

FileOutputStream out=new FileOutputStream(f2);

FileChannel inC=in.getChannel();

FileChannel outC=out.getChannel();

int i=0;

while(true){

if(inC.position()==inC.size()){

inC.close();

outC.close();

return new Date().getTime()-time;

}

if((inC.size()-inC.position())20971520)

length=(int)(inC.size()-inC.position());

else

length=20971520;

inC.transferTo(inC.position(),length,outC);

inC.position(inC.position()+length);

i++;

}

}

}

java如何复制拷贝一个文件到另一个文件夹?如:a文件夹中的.data文件拷贝到b文件夹。

你可以个java inputStrem流和outputStream流来实现这个功能。

import java.io.*;

public class FileStreamDemo {

public static void main(String[] args) {

try {

// 来源文件

FileInputStream in = new FileInputStream("D:/b.txt");

// 目的文件

FileOutputStream out = new FileOutputStream("C:/a.txt");

byte[] bytearray = new byte[1024];

do {

in.read(bytearray, 0, 1024);

out.write(bytearray);

} while (in.available() 0);

in.close();

out.close();

} catch (ArrayIndexOutOfBoundsException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

JAVA高手请进!求一个JAVA程序:将一个文件中的内容复制到另一个文件中。

最简单的io流问题,不用什么高手,

我给你写个方法,参数是2个字符串,第一个写原文件的全路径,第二个写目标文件的全路进。 你试试吧

public void copy(String fromFilePath, String toFilePath) {

try {

FileInputStream fis = new FileInputStream(fromFilePath);

FileOutputStream fos = new FileOutputStream(toFilePath);

byte[] b = new byte[100];

try {

while (fis.read(b) != (-1)) {

fos.write(b);

}

if (fis != null) {

fis.close();

fis = null;

}

if (fos != null) {

fos.flush();

fos.close();

fos = null;

}

} catch (IOException e) {

System.out.println("io异常");

}

} catch (FileNotFoundException e) {

System.out.println("源文件不存在");

}

public static void main(String[] args) {

//自己把路径补齐,别忘了!!!!!!!!!!!!!!!!

String fromFilePath=" "; // 源文件的全路径。 比方"d://myphoto//nihao.mp3"

String toFilePath=" "; //目标文件的全路劲。 如果不存在会自动建立,如存在则在文件尾继续添加

new CopyTest().copy(fromFilePath, toFilePath);

}

}