import com.alibaba.fastjson.JSON;
import org.apache.commons.io.FileUtils;
import org.junit.Test;
import java.io.IOException;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.List;
/**
* @ClassName TestJsonToJsonObj
* @Description 测试json字符串,转成json对象
* @Author 落在牛背上的鸟
* @Date 2020/3/14 17:11
* @Version 1.0
*/
public class TestJsonToJsonObj {
// 定义全局变量
String fileName = "";
@Test
public void testJSONToJSONObj() {
try {
// Java NIO 中的方法,遍历指定文件夹下的所有文件夹和文件
Files.walkFileTree(Paths.get("F:\\bilibili new\\54029771\\"), new SimpleFileVisitor<Path>() {
/**
* 访问file文件时触发该方法
* @param file 指定的文件夹
* @param attrs
* @return
* @throws IOException
*/
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
// 重命名后的文件夹路径
String path = "F:\\bilibili new\\Java 数据结构和算法\\";
// 判断是否已 info 结尾的文件
if (file.getFileName().toString().endsWith("info")) {
// 读取 info 文件的所有行
List<String> list = Files.readAllLines(file);
for (String s : list) {
// 使用 com.alibaba.fastjson.JSON 中的方法,直接获取到 PartName 的值
String name = JSON.parseObject(s).get("PartName").toString();
// 构件 新的文件; 目录 + 文件名 + 后缀名
fileName = path + name + ".flv";
}
}
// 判断是否已 flv 结尾的文件
if (file.getFileName().toString().endsWith("flv")) {
// 使用 org.apache.commons.io.FileUtils 中的 moveFile 方法,重命名和移动一起搞定
FileUtils.moveFile(FileUtils.getFile(file.toString()), FileUtils.getFile(fileName));
}
// 代表继续访问后续行为
return FileVisitResult.CONTINUE;
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
}