Tenho aprendido o fluxo de IO há muito tempo, mas nunca realmente o usei. Hoje, achei que a eficiência estava muito baixa ao salvar o emoji no chat em grupo, então escrevi um programa de console simples para me ajudar a salvá-lo.
Este é o endereço onde o qq armazena as imagens. Costumava ser um monte de imagens sem extraí-las. Agora foi alterado para este formato de várias pastas. Seria muito lento abri-las uma por uma manualmente
.
public static void main(String[] args) {
//设置文件路径,把22735改成自己计算机名即可
File file = new File("C:\\Users\\计算机名\\Documents\\Tencent Files\\想要获取的QQ号\\Image\\Group2");
fun(file);
}
public static void fun(File dir) {
//调用listFiles方法对目录进行遍历
File[] filearr = dir.listFiles();
for (File file : filearr)
{
if (file.isDirectory())
{
fun(file);//判断如果是文件夹就继续调用遍历目录下内容的方法,形成递归
}else {
if(file.getName().indexOf(".")>0){
copy(file,new File("C:Users\\计算机名\\Documents\\Tencent Files\\想要获取的QQ号\\Image\\存放地址\\"+file.getName()));
}
}
}
}
public static void copy(File file, File destFile) {
FileInputStream ins = null;
FileOutputStream ios = null;
try{
ins = new FileInputStream(file);
ios = new FileOutputStream(destFile);
byte[] buf = new byte[1024];
int size = 0;
while((size = ins.read(buf))!=-1){
ios.write(buf,0,size);
}
}
catch (IOException e){
e.printStackTrace();
}
}
Na verdade, o princípio é muito simples. É pesquisar todo o caminho a partir da imagem para formar uma pesquisa recursiva. Quando o sufixo for denominado formato de imagem, copie-o para o endereço onde deseja armazená-
lo e salve um por um quando vir do que você gosta. Escreva outro ai para reconhecer automaticamente o segundo elemento irmão e salve-o automaticamente ...