欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java输入输出IO流

程序员文章站 2024-03-04 20:44:06
...

字节流FileInputStream和FileOutputStream复制文件

public static void main(String[] args) throws IOException {
    FileInputStream inputStream = new FileInputStream("d:/abc.jpg");
    FileOutputStream outputStream = new FileOutputStream("e:/abc.jpg");
    byte[] buff = new byte[1024];
    int len = 0;
    while ((len = inputStream.read(buff)) != -1) {
        outputStream.write(buff,0, len);
    }
    inputStream.close();
    outputStream.close();
}

字节缓冲流BufferedInputStream和BufferedOutputStream复制文件

public static void main(String[] args) throws IOException {
    BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream("d:/abc.jpg"));
    BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream("e:/abc.jpg"));
    byte[] buff = new byte[1024];
    int len = 0;
    while ((len = inputStream.read(buff)) != -1) {
        outputStream.write(buff,0, len);
    }
    inputStream.close();
    outputStream.close();
}

java输入输出IO流

字符流FileReader和FileWriter复制文件-会有乱码问题,要保证编码一致

public static void main(String[] args) throws IOException {
    FileReader fileReader = new FileReader("d:/abc.txt");
    FileWriter fileWriter = new FileWriter("D:/def.txt");
    int ch ;
    while ((ch = fileReader.read()) != -1) {
        fileWriter.write(ch);
    }
    fileReader.close();
    fileWriter.close();
}

字符字节转换流OutputStreamWriter和InputStreamReader复制文件

public static void main(String[] args) throws IOException {
    InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream("D:/gh.txt"), "utf-8");
    OutputStreamWriter outputStreamWriter = new OutputStreamWriter(new FileOutputStream("D:/def.txt"), "utf-8");

    int temp ;
    while ((temp = inputStreamReader.read()) != -1) {
        System.out.println((char)temp);
        outputStreamWriter.write(temp);
    }
    outputStreamWriter.close();
    inputStreamReader.close();
}

缓冲字符流BufferedWriter和BufferedReader复制文件

public static void main(String[] args) throws IOException {
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream("D:/gh.txt"), "utf-8"));
    BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("D:/def.txt"), "utf-8"));

    String temp ;
    while ((temp = bufferedReader.readLine()) != null) {
        bufferedWriter.write(temp);
        bufferedWriter.newLine();
    }
    bufferedReader.close();
    bufferedWriter.close();
}

java输入输出IO流

工具类common-io

java输入输出IO流

递归复制文件夹

public static void main(String[] args) throws Exception {
    copyDir(new File("d:/abc"), new File("d:/def"));
}
private static void copyDir(File srcFile, File destFile) throws Exception {
    File[] listFiles = srcFile.listFiles();
    for(File file : listFiles) {
        if (file.isFile()) {
            copyFile(file, new File(destFile,file.getName()));
        }
        if (file.isDirectory()) {
            File toFile = new File(destFile, file.getName());
            toFile.mkdirs();
            copyDir(file, toFile);
        }
    }
}
private static void copyFile(File srcFile, File destFile) throws Exception {
    BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(srcFile));
    BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(destFile));

    byte[] buff = new byte[2048];
    int len ;
    while ((len = bufferedInputStream.read(buff)) != -1) {
        bufferedOutputStream.write(buff,0,len);
        bufferedOutputStream.flush();
    }
    bufferedInputStream.close();
    bufferedOutputStream.close();
}