由于是字节流,那就不能操作非文本文件比如图像音频等,因为他们要用字节流进行操作;

文件复制(字节流)的几种方式

一个一个字符的复制

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Test {
    public static void main(String[] args) throws IOException {
        File file = new File("D:\\a\\b1.txt");
        FileReader fr= new FileReader(file);
        FileWriter fw= new FileWriter("D:\\复制文档.docx");
               int read = fr.read();
        while(read!=-1){
            fw.write(read);
            read=fr.read();
        }
        fw.close();
        fr.close();
    }
}
利用缓冲数组方式(两种)

方式一:


import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Test {
    public static void main(String[] args) throws IOException {
        File file = new File("D:\\a\\b1.txt");
        FileReader fr= new FileReader(file);
        FileWriter fw= new FileWriter("D:\\复制文档.docx");
        char c[] = new char[10];
        int read = fr.read(c);
        while(read!=-1){
            fw.write(c,0,read);//写入实际读取的有效长度
            read=fr.read(c);
        }
        fw.close();
        fr.close();
    }
}

方式二:


import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Test {
    public static void main(String[] args) throws IOException {
        File file = new File("D:\\a\\b1.txt");
        FileReader fr= new FileReader(file);
        FileWriter fw= new FileWriter("D:\\复制文档.docx");
        char c[] = new char[10];
        int read = fr.read(c);
        while(read!=-1){
            fw.write(new String (c,0,read));//将读取的转换为字符串在进行写入
            read=fr.read(c);
        }
        fw.close();
        fr.close();
    }
}