Java实现把一个文件的内容复制到另外一个文件中

解决方案 »

  1.   

    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;public class Copy { public static void main(String[] args) {
    // TODO Auto-generated method stub
    String s = "d:\\1.txt";
    String d = "d:\\2.txt";
    Copy.fileCopy(s,d);

    }

    public static void fileCopy(String src,String des){

    try {
    FileInputStream fis = new FileInputStream(src);
    FileOutputStream fos = new FileOutputStream(des);
    int temp = fis.read();
    while(temp != -1){

    fos.write(temp);
    temp = fis.read();
    }
    fis.close();
    fos.close();
    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block

    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }


    }
    }
    看看这个怎么样?
      

  2.   

    呵呵
    为什么不看看 File的 API帮助呢
      

  3.   

    int temp = fis.read();
    没有public int read(byte[] b)
    这个方法效率高啊!!!
      

  4.   

    没学会多久import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.nio.channels.FileChannel;public class Test {
        
        public static void main(String[] args)  {
            copyFile("a.txt", "b.txt");        
        }
        
        public static void copyFile(String srcFile, String destFile) {
            FileInputStream is = null;
            FileOutputStream os = null;
            FileChannel fin = null;
            FileChannel fout = null;
            try {
                is = new FileInputStream(srcFile);
                os = new FileOutputStream(destFile);
                fin = is.getChannel();
                fout = os.getChannel();
                fin.transferTo(0, fin.size(), fout);
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    fin.close();
                    fout.close();
                    is.close();
                    os.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }            
            }
        }
    }
      

  5.   

    package nineteen;import java.io.*;public class CopyAll { public void copyDir(File from, File to) {
    if (!to.exists()) {
    to.mkdirs();
    }
    File[] files = from.listFiles();
    for (int i = 0; i < files.length; i++) {
    File file1 = files[i];
    File file2 = new File(to.getPath() + File.separator
    + files[i].getName());
    if (!file1.isDirectory()) {
    copyFile(file1, file2);
    } else {
    copyDir(file1, file2);
    }
    } } public void copyFile(File src, File dest) {
    try {
    System.out.println(src.getAbsoluteFile() + " -> "
    + dest.getAbsoluteFile());
    FileInputStream in = new FileInputStream(src);
    FileOutputStream out = new FileOutputStream(dest);
    byte[] buffer = new byte[1024];
    while (in.read(buffer) != -1) {
    out.write(buffer);
    }
    out.close();
    in.close();
    System.out.println("文件拷贝成功");
    } catch (Exception e) {
    System.out.println("文件拷贝失败");
    } } public static void main(String[] args) {
    CopyAll t = new CopyAll();
    t.copyDir(new File(args[0]), new File(args[1])); }}
      

  6.   

    推荐看看jarkata的commons IO包,有很详细的这种文件操作。
      

  7.   

    使用普通IO操作,看上去比较简单一些,但是实际会比较慢,是一个字节一个字节地在读取。像6楼那样使用NIO拷贝会快一些。
      

  8.   

    再帮忙看看这个问题
    http://topic.csdn.net/u/20080222/19/d2e39c2b-9e86-43cd-a924-7f887816f0e6.html