java之向linux文件夾下寫文件無權(quán)限的問題
java向linux文件夾下寫文件無權(quán)限
我們把服務(wù)器部署到linux服務(wù)器上時(shí),有時(shí)會(huì)出現(xiàn)沒有寫文件權(quán)限問題,出現(xiàn)這個(gè)問題原因是,這個(gè)目錄對(duì)代碼來說只有讀的權(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)文章
Java代碼實(shí)現(xiàn)發(fā)送QQ和網(wǎng)易電子郵件
這篇文章主要為大家詳細(xì)介紹了如何通過Java代碼實(shí)現(xiàn)發(fā)送QQ和網(wǎng)易電子郵件功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2026-02-02
SpringBoot使用SOFA-Lookout監(jiān)控的方法
本文介紹SpringBoot使用螞蟻金服SOFA-Lookout配合Prometheus進(jìn)行監(jiān)控,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-03-03
詳解基于Spring Data的領(lǐng)域事件發(fā)布
這篇文章主要介紹了詳解基于Spring Data的領(lǐng)域事件發(fā)布,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
Spring?Cloud?使用?Resilience4j?實(shí)現(xiàn)服務(wù)熔斷的方法
服務(wù)熔斷是為了保護(hù)我們的服務(wù),比如當(dāng)某個(gè)服務(wù)出現(xiàn)問題的時(shí)候,控制打向它的流量,讓它有時(shí)間去恢復(fù),或者限制一段時(shí)間只能有固定數(shù)量的請(qǐng)求打向這個(gè)服務(wù),這篇文章主要介紹了Spring?Cloud?使用?Resilience4j?實(shí)現(xiàn)服務(wù)熔斷,需要的朋友可以參考下2022-12-12
Spring MVC+mybatis實(shí)現(xiàn)注冊(cè)登錄功能
這篇文章主要為大家詳細(xì)介紹了Spring MVC+mybatis實(shí)現(xiàn)注冊(cè)登錄功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
Java使用JDBC或MyBatis框架向Oracle中插入XMLType數(shù)據(jù)
XMLType是Oracle支持的一種基于XML格式存儲(chǔ)的數(shù)據(jù)類型,這里我們共同來探究Java使用JDBC或MyBatis框架向Oracle中插入XMLType數(shù)據(jù)的方法:2016-07-07
SpringBoot遠(yuǎn)程調(diào)用(HTTP)實(shí)現(xiàn)過程
本文介紹了JDK中常用的HTTP客戶端庫,包括HttpURLConnection、Apache HttpClient、OkHttp、RestTemplate和WebClient,并詳細(xì)比較了WebClient和RestTemplate的異同,同時(shí),文章還介紹了Reactor項(xiàng)目中的Mono和Flux等反應(yīng)式編程概念,以及如何在異步非阻塞環(huán)境中使用這些工具2025-11-11

