java之向linux文件夹下写文件无权限的问题
作者:it1993
这篇文章主要介绍了java之向linux文件夹下写文件无权限的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
java向linux文件夹下写文件无权限
我们把服务器部署到linux服务器上时,有时会出现没有写文件权限问题,出现这个问题原因是,这个目录对代码来说只有读的权限,没有写文件权限,下面我们解决一下这个问题
登上linux,在home文件夹下新建目录erplog,具体操作如下,第一行新建erplog文件夹,第二句话意思是给erplog文件夹赋权限,777是最高权限
[root@zhylapp home]# mkdir erplog [root@zhylapp home]# chmod -R 777 erplog/
执行代码,发现写入文件成功
写文件具体代码如下
package com.qlyl.erp.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.File; import java.io.FileWriter; import java.io.IOException; public class FileUpload { private static final Logger log = LoggerFactory.getLogger(FileUpload.class); private static final String mark = System.getProperty("line.separator"); /** * 写日志 * @param str * @param path */ public static void writeLocalStrOne(String str, String path){ try { File file = new File(path); file.setWritable(true, false); if (!file.getParentFile().exists()) { file.getParentFile().mkdirs(); } file.createNewFile(); if(str != null && !"".equals(str)){ // true在内容后面继续添加 FileWriter fw = new FileWriter(file, true); fw.write(str + mark);//写入本地文件中 fw.flush(); fw.close(); log.info("向目录[{}]写入文件成功!", path); } } catch (IOException e) { e.printStackTrace(); } } }
java中修改linux文件夹和文件的权限
/** * 修改linux图片权限 * @param filePath * @throws IllegalStateException * @throws IOException */ public static void storeFile(String filePath) throws IllegalStateException, IOException { File file = new File(filePath); //设置权限 Set<PosixFilePermission> perms = new HashSet<PosixFilePermission>(); perms.add(PosixFilePermission.OWNER_READ);//设置所有者的读取权限 perms.add(PosixFilePermission.OWNER_WRITE);//设置所有者的写权限 perms.add(PosixFilePermission.OWNER_EXECUTE);//设置所有者的执行权限 perms.add(PosixFilePermission.GROUP_READ);//设置组的读取权限 perms.add(PosixFilePermission.GROUP_EXECUTE);//设置组的读取权限 perms.add(PosixFilePermission.OTHERS_READ);//设置其他的读取权限 perms.add(PosixFilePermission.OTHERS_EXECUTE);//设置其他的读取权限 try { //设置文件和文件夹的权限 Path pathParent = Paths.get(file.getParentFile().getAbsolutePath()); Path pathDest = Paths.get(file.getAbsolutePath()); Files.setPosixFilePermissions(pathParent, perms);//修改文件夹路径的权限 Files.setPosixFilePermissions(pathDest, perms);//修改图片文件的权限 } catch (Exception e) { e.printStackTrace(); } }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。