12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- package me.yoqi.wechatdecode;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.concurrent.ExecutorService;
- import java.util.concurrent.Executors;
- public class WeChatImgRevert {
- static String rootPath = "C:/Users/liuyuqi/AppData/Local/Packages/TencentWeChatLimited.forWindows10_sdtnhv12zgd7a/LocalCache/Roaming/Tencent/WeChatAppStore/WeChatAppStore Files/ab3255/Data/";
- public static void main(String[] args) {
- ExecutorService pool = Executors.newFixedThreadPool(10);
- Runnable r = () -> {
- String[] fileName = GetFileName.getFileName(rootPath);
- int i = 0;
- for (String name : fileName) {
- try (InputStream reader = new FileInputStream(rootPath + name)) {
- try (OutputStream writer = new FileOutputStream("D:/photo/" + name + ".jpg")) {
- byte[] bytes = new byte[1024];
- int b;
- while ((b = reader.read(bytes)) != -1) {// 这里的in.read(bytes);就是把输入流中的东西,写入到内存中(buffer)。
- // System.out.println("b = " + b + " b ^ 241 = " +
- // (b ^ 241));
- writer.write(b ^ 56611);// 241这个值是现算的,每个人电脑的值都不一致
- writer.flush();
- }
- }
- System.out.println(i++);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- };
- pool.submit(r);
- pool.shutdown();
- // System.out.println("--------------------------------");
- //
- // ArrayList<String> listFileName = new ArrayList<String>();
- //
- // GetFileName.getAllFileName("F:/dat", listFileName);
- //
- // for (String name : listFileName) {
- // System.out.println(name);
- // }
- }
- }
- class GetFileName {
- public static String[] getFileName(String path) {
- File file = new File(path);
- String[] fileName = file.list();
- return fileName;
- }
- public static void getAllFileName(String path, ArrayList<String> fileName) {
- File file = new File(path);
- File[] files = file.listFiles();
- String[] names = file.list();
- if (names != null)
- fileName.addAll(Arrays.asList(names));
- for (File a : files) {
- if (a.isDirectory()) {
- getAllFileName(a.getAbsolutePath(), fileName);
- }
- }
- }
- }
|