之所以写这篇文章是因为,最一开始是直接用输出流生成文件,然后用Runtime.getRuntime().exec("chmod 777 " + xml);将文件授权,因为文件要通过ftp获取,所以用这种方式一开始一直获取不到,然后用命令获取生成的文件是可以的,经检查,生成文件后,虽然执行修改文件权限的代码,但是文件的权限没有及时生效,过了几十秒才会生效,所以当拉取时不会拉取到,所以有了下面的方案,先生成文件,使用下面的方式修改文件的权限,然后再在文件中添加内容,文件获取不到的问题解决
Document doc = new Document(aid);
Format format = Format.getCompactFormat();
format.setEncoding("UTF-8");
format.setIndent(" ");
String name = programCode;
out = new XMLOutputter(format);
String xmlPath = ; // 文件路径
File file = new File(xmlPath);
file.createNewFile();
file.setReadable(true);
// 下面的是设置权限的重点
Path path = Paths.get(xmlPath);
Set perms = Files.readAttributes(path, PosixFileAttributes.class).permissions();
perms.add(PosixFilePermission.OWNER_WRITE);
perms.add(PosixFilePermission.OWNER_READ);
perms.add(PosixFilePermission.OWNER_EXECUTE);
perms.add(PosixFilePermission.GROUP_WRITE);
perms.add(PosixFilePermission.GROUP_READ);
perms.add(PosixFilePermission.GROUP_EXECUTE);
perms.add(PosixFilePermission.OTHERS_WRITE);
perms.add(PosixFilePermission.OTHERS_READ);
perms.add(PosixFilePermission.OTHERS_EXECUTE);
Files.setPosixFilePermissions(path, perms);
FileOutputStream fileOutputStream = new FileOutputStream(file,true);
out.output(doc, fileOutputStream);
fileOutputStream.close();
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)