瞎写的一些函数

来源:互联网 发布:windows消息机制是啥 编辑:程序博客网 时间:2024/06/05 07:54
package java2.pack1;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.util.Arrays;import java.util.Objects;/** * Created by fhqplzj on 16-10-21 at 下午10:19. */public class SameOrNot {    private static final String path = "/home/fhqplzj/IdeaProjects/DocumentClustering/out/pictures";    /**     * 比较两幅图片是否一样a     *     * @param pic1     * @param pic2     * @return     */    private static boolean isSame(String pic1, String pic2) {        try {            FileInputStream file1 = new FileInputStream(String.format("%s/%s", path, pic1));            FileInputStream file2 = new FileInputStream(String.format("%s/%s", path, pic2));            if (file1.available() != file2.available()) {                return false;            }            for (int i = 0; i < file1.available(); i++) {                if (file1.read() != file2.read()) {                    return false;                }            }        } catch (IOException e) {            e.printStackTrace();        }        return true;    }    private static void distinct() {        File file = new File(path);        File[] files = file.listFiles();        Objects.requireNonNull(files);        Arrays.sort(files, (o1, o2) -> Long.compare(o1.length(), o2.length()));        int i = 0;        for (int j = 1; j < files.length; j++) {            if (!isSame(files[i].getName(), files[j].getName())) {                swap(files, ++i, j);            } else {                boolean b = files[j].delete();                if (b) {                    System.out.println("deleted");                } else {                    System.out.println("bad");                }            }        }    }    private static void swap(File[] files, int i, int j) {        File tmp = files[i];        files[i] = files[j];        files[j] = tmp;    }    private static void rename() {        File file = new File(path);        File[] files = file.listFiles();        Objects.requireNonNull(files);        Arrays.sort(files, (o1, o2) -> {            Integer x = Integer.valueOf(o1.getName().substring(3));            Integer y = Integer.valueOf(o2.getName().substring(3));            return Integer.compare(x, y);        });        int id = 0;        for (File file1 : files) {            String prev = file1.getName();            String fileName = String.format("%s/pic%d", file1.getParent(), ++id);            boolean b = file1.renameTo(new File(fileName));            if (b) {                System.out.println(String.format("successful rename %s to %s", prev, file1.getName()));            } else {                System.err.println("fail to rename");            }        }    }    public static void main(String[] args) {        rename();    }}

0 0