1. import com.alibaba.fastjson.JSON;
    2. import org.apache.commons.io.FileUtils;
    3. import org.junit.Test;
    4. import java.io.IOException;
    5. import java.nio.file.*;
    6. import java.nio.file.attribute.BasicFileAttributes;
    7. import java.util.List;
    8. /**
    9. * @ClassName TestJsonToJsonObj
    10. * @Description 测试json字符串,转成json对象
    11. * @Author 落在牛背上的鸟
    12. * @Date 2020/3/14 17:11
    13. * @Version 1.0
    14. */
    15. public class TestJsonToJsonObj {
    16. // 定义全局变量
    17. String fileName = "";
    18. @Test
    19. public void testJSONToJSONObj() {
    20. try {
    21. // Java NIO 中的方法,遍历指定文件夹下的所有文件夹和文件
    22. Files.walkFileTree(Paths.get("F:\\bilibili new\\54029771\\"), new SimpleFileVisitor<Path>() {
    23. /**
    24. * 访问file文件时触发该方法
    25. * @param file 指定的文件夹
    26. * @param attrs
    27. * @return
    28. * @throws IOException
    29. */
    30. @Override
    31. public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
    32. // 重命名后的文件夹路径
    33. String path = "F:\\bilibili new\\Java 数据结构和算法\\";
    34. // 判断是否已 info 结尾的文件
    35. if (file.getFileName().toString().endsWith("info")) {
    36. // 读取 info 文件的所有行
    37. List<String> list = Files.readAllLines(file);
    38. for (String s : list) {
    39. // 使用 com.alibaba.fastjson.JSON 中的方法,直接获取到 PartName 的值
    40. String name = JSON.parseObject(s).get("PartName").toString();
    41. // 构件 新的文件; 目录 + 文件名 + 后缀名
    42. fileName = path + name + ".flv";
    43. }
    44. }
    45. // 判断是否已 flv 结尾的文件
    46. if (file.getFileName().toString().endsWith("flv")) {
    47. // 使用 org.apache.commons.io.FileUtils 中的 moveFile 方法,重命名和移动一起搞定
    48. FileUtils.moveFile(FileUtils.getFile(file.toString()), FileUtils.getFile(fileName));
    49. }
    50. // 代表继续访问后续行为
    51. return FileVisitResult.CONTINUE;
    52. }
    53. });
    54. } catch (IOException e) {
    55. e.printStackTrace();
    56. }
    57. }
    58. }