java之向linux文件夾下寫文件無(wú)權(quán)限的問題
java向linux文件夾下寫文件無(wú)權(quán)限
我們把服務(wù)器部署到linux服務(wù)器上時(shí),有時(shí)會(huì)出現(xiàn)沒有寫文件權(quán)限問題,出現(xiàn)這個(gè)問題原因是,這個(gè)目錄對(duì)代碼來(lái)說只有讀的權(quán)限,沒有寫文件權(quán)限,下面我們解決一下這個(gè)問題
登上linux,在home文件夾下新建目錄erplog,具體操作如下,第一行新建erplog文件夾,第二句話意思是給erplog文件夾賦權(quán)限,777是最高權(quán)限
[root@zhylapp home]# mkdir erplog [root@zhylapp home]# chmod -R 777 erplog/
執(zhí)行代碼,發(fā)現(xiàn)寫入文件成功
寫文件具體代碼如下
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在內(nèi)容后面繼續(xù)添加 FileWriter fw = new FileWriter(file, true); fw.write(str + mark);//寫入本地文件中 fw.flush(); fw.close(); log.info("向目錄[{}]寫入文件成功!", path); } } catch (IOException e) { e.printStackTrace(); } } }
java中修改linux文件夾和文件的權(quán)限
/** * 修改linux圖片權(quán)限 * @param filePath * @throws IllegalStateException * @throws IOException */ public static void storeFile(String filePath) throws IllegalStateException, IOException { File file = new File(filePath); //設(shè)置權(quán)限 Set<PosixFilePermission> perms = new HashSet<PosixFilePermission>(); perms.add(PosixFilePermission.OWNER_READ);//設(shè)置所有者的讀取權(quán)限 perms.add(PosixFilePermission.OWNER_WRITE);//設(shè)置所有者的寫權(quán)限 perms.add(PosixFilePermission.OWNER_EXECUTE);//設(shè)置所有者的執(zhí)行權(quán)限 perms.add(PosixFilePermission.GROUP_READ);//設(shè)置組的讀取權(quán)限 perms.add(PosixFilePermission.GROUP_EXECUTE);//設(shè)置組的讀取權(quán)限 perms.add(PosixFilePermission.OTHERS_READ);//設(shè)置其他的讀取權(quán)限 perms.add(PosixFilePermission.OTHERS_EXECUTE);//設(shè)置其他的讀取權(quán)限 try { //設(shè)置文件和文件夾的權(quán)限 Path pathParent = Paths.get(file.getParentFile().getAbsolutePath()); Path pathDest = Paths.get(file.getAbsolutePath()); Files.setPosixFilePermissions(pathParent, perms);//修改文件夾路徑的權(quán)限 Files.setPosixFilePermissions(pathDest, perms);//修改圖片文件的權(quán)限 } catch (Exception e) { e.printStackTrace(); } }
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring中使用JSR303請(qǐng)求約束判空的實(shí)現(xiàn)
這篇文章主要介紹了Spring中使用JSR303請(qǐng)求約束判空的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Spring boot實(shí)現(xiàn)一個(gè)簡(jiǎn)單的ioc(2)
這篇文章主要為大家詳細(xì)介紹了Spring boot實(shí)現(xiàn)一個(gè)簡(jiǎn)單ioc的第二篇,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04Mybatis關(guān)聯(lián)查詢之一對(duì)多和多對(duì)一XML配置詳解
這篇文章主要介紹了Mybatis關(guān)聯(lián)查詢之一對(duì)多和多對(duì)一XML配置詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10Spring Cloud動(dòng)態(tài)配置刷新@RefreshScope與@Component的深度解析
在現(xiàn)代微服務(wù)架構(gòu)中,動(dòng)態(tài)配置管理是一個(gè)關(guān)鍵需求,Spring Cloud 提供了 @RefreshScope 注解,允許應(yīng)用在運(yùn)行時(shí)動(dòng)態(tài)更新配置,而無(wú)需重啟服務(wù),本文深入探析Spring Cloud動(dòng)態(tài)配置刷新@RefreshScope與@Component,感興趣的朋友一起看看吧2025-04-04JavaSE經(jīng)典小練習(xí)項(xiàng)目之拷貝文件夾
文件拷貝是一個(gè)常見的任務(wù),無(wú)論是備份文件,還是將文件從一個(gè)位置復(fù)制到另一個(gè)位置,文件拷貝都是必不可少的,這篇文章主要給大家介紹了關(guān)于JavaSE經(jīng)典小練習(xí)項(xiàng)目之拷貝文件夾的相關(guān)資料,需要的朋友可以參考下2023-10-10