java复制更改指定文件类型、后缀名

时间:2022-07-18 16:13:19

概述

时间太长写的什么东西都忘了,所以记录一下。

前段时间,因为有些原因所以不得已才这样做的,什么东西这个方式不行总能换个方式,更何况我们是程序猿,哈哈。

这个是一个把文件中的所有java文件复制后改成一个text文件(保存在同一个目录下)好了废话不多说,直接看代码吧

CopyFile.java

public class CopyFile {

    /**
     * 获取文件夹下边的所有文件
     * @param path 路径
     */
    public void readFile(String path) {
        File file = new File(path);
        //获取所有目录下的文件、文件夹
        File[] files = file.listFiles();
        for (int i = 0; i < files.length; i++) {
            if (files[i].isDirectory()) {
                readFile(files[i].getAbsolutePath());
            } else {
                String oldPath = files[i].getAbsolutePath();
                //获取文件类型
                String prefix = oldPath.substring(oldPath.lastIndexOf(".") + 1);
                //需要替换的文件类型
                String newPath = oldPath.replace(".java", ".text");
                //指定复制替换的文件类型
                if (prefix.equals("java")) {
                    copy(oldPath, newPath);
                }
                System.out.println(files[i].getAbsolutePath());
            }
        }
    }

    /**
     * 复制文件
     *
     * @param oldPath 需要复制的文件路径
     * @param newPath 复制后的文件路劲
     */
    public void copy(String oldPath, String newPath) {
        try {
            File oldfile = new File(oldPath);
            if (oldfile.exists()) {
                InputStream inStream = new FileInputStream(oldPath);
                FileOutputStream fileOfutputStream = new FileOutputStream(newPath);
                byte[] buffer = new byte[1024];
                int length;
                while ((length = inStream.read(buffer)) != -1) {
                    fileOfutputStream.write(buffer, 0, length);
                }
                inStream.close();
                fileOfutputStream.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}