package com.liu;
import java.io.*;
/**
*把哔哩哔哩视频移出来,并重命名
*/
public class KaoBeiTest01 {
//目标目录,放到这个目录下
static String nf = "E:\\日语视频\\日语初级中级";
public static void main(String[] args) {
//首先判断输出目录是否存在,不存在就创建
File newFile = new File(nf);
if (!newFile.exists()) {
newFile.mkdirs();
}
//要提取的文件
File file = new File("E:\\日语视频\\843430903");
//提取info文件partname,并重新命名新文件
getDirName(file);
System.out.println("文件移动改名成功!");
}
private static void getDirName(File file) {
String newFileName = null;
//遍历获得biliFile文件对象,获得里面每一个文件和文件夹对象
File[] files = file.listFiles();
//再遍历获得的对象,进行判断
for (File fn : files) {
//判断是否是文件
if (fn.isFile()) {
//是文件,就获取该文件对象名的字符串
String fileName = fn.getName();
//1.判断文件名是否是以info结尾
if (fileName.endsWith("info")) {
try {
//新建字符输入流
BufferedReader br = new BufferedReader(new FileReader(fn));
//读取文件中第一整行的字符串
String line = br.readLine();
//把读取到的字符串,先按照"\PartName":\"字符串,进行切割成两个部分,并存入split1数组中
String[] split1 = line.split("\"PartName\":\"");
//再对后半部的字符串按照"\",\""字符串进行切割并存入name数组中
String[] split2 = split1[1].split("\",\"");
//那么split2数组中0索引处的字符串就是我们需要提取的文件名
//拼接新文件名路径字符串
newFileName = split2[0] + ".mp4";
br.close();
} catch (Exception e) {
e.printStackTrace();
}
//2.判断文件名是否是以mp4结尾
} else if (fileName.endsWith("mp4")) {
String newPath = nf + "\\" + newFileName;
File newFile=new File(newPath);
if(!newFile.exists()){
try {
newFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
FileInputStream in=null;
FileOutputStream out=null;
try {
in=new FileInputStream(fn);
out=new FileOutputStream(newFile);
byte[] bytes=new byte[1024*1024];
int readCount=0;
while((readCount=in.read(bytes))!=-1) {
out.write(bytes, 0, readCount);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
} else {
//是文件夹就继续递归
getDirName(fn);
}
}
}
}
哔哩哔哩视频移动重新命名