zoukankan      html  css  js  c++  java
  • java新式文件操作

    public static Boolean checkFileExist (String filePath) {
            LOGGER.info("checkFileExist the input filePath {}", filePath);
            Path classJarPath = Paths.get(filePath);
            
            return Files.exists(classJarPath, LinkOption.NOFOLLOW_LINKS);
        }
        
     // 每次上传的时候
        public static void prepareFile(String globalVersion) throws IOException {
            
            FlinkThpoolInitializer flinkThPoolInitializer = SpringContextUtils.getBean("flinkThPoolInitializer", FlinkThpoolInitializer.class);
            
            String coreSizeStr = flinkThPoolInitializer.getProperties().getProperty("corePoolSize");
            Integer coreSize = Integer.valueOf(coreSizeStr);
            
            String emptyFileStr = flinkThPoolInitializer.getProperties().getProperty("emptyFile");
            
            String newFile = StringConstant.LINUX_JOB_DIRSUFFIX + emptyFileStr;
            Path newpath = Paths.get(newFile);
            
            File emptyFile = newpath.toFile();
            emptyFile.createNewFile(); // 创建辅助空文件
            String tmpJarFileName = "";
    //        String globalVersion = httpForeignIntefaceConfigInitializer.getProperties().getProperty("Flink.JarName");
            String originalJarPath = StringConstant.LINUX_JOB_FILESUFFIX + globalVersion ;
            Path pathToAddFile = emptyFile.toPath();
            Map<String, String> env = new HashMap<>();
            env.put("create", "true");
            for (int i = 0; i < coreSize; i++) {//从0开始
                String uuid = UUID.randomUUID().toString().replaceAll("-", "");
                tmpJarFileName = originalJarPath.substring(0, originalJarPath.length() - 4) + "-upgrade" + i + ".jar";
                FileUtils.copyFile(new File(originalJarPath), new File(tmpJarFileName));// 创建中间文件 提交任务时 使用此文件
                Path path = Paths.get(tmpJarFileName);
                URI uri = URI.create("jar:" + path.toUri());
                try (FileSystem fs = FileSystems.newFileSystem(uri, env)) {// 向辅助空文件中写入uuid 并将空文件写入中间文件 保证同一批次间使用的jar文件不同
                    Path nf = fs.getPath("emptyFile");
                    Files.copy(pathToAddFile, nf, StandardCopyOption.REPLACE_EXISTING);
                    Writer writer = Files.newBufferedWriter(nf, StandardCharsets.UTF_8, StandardOpenOption.CREATE);
                    writer.write(uuid);
                    writer.close();
                }
            }
        }
    

      

  • 相关阅读:
    文本域光标操作(选、添、删、取)的jQuery扩展
    jQuery插件,将内容插入到光标处
    onmouseout,mouseover经过子元素也触发的问题解决方案
    【M4】非必要不提供default 构造方法
    【M3】绝对不要以多态方式处理数组
    100亿个数字找出最大的10个
    【M2】最好使用C++转型操作符
    【M26】限制某个class所能产生的对象数量
    理解extern
    变量的属性
  • 原文地址:https://www.cnblogs.com/juniorMa/p/12190445.html
Copyright © 2011-2022 走看看