java之向linux文件夹下写文件无权限的问题

 更新时间:2023年09月19日 10:48:06   作者: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();
        }
    }

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • springboot框架各个层次基础详解

    springboot框架各个层次基础详解

    这篇文章主要介绍了springboot框架各个层次基础,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • Java代码实现发送QQ和网易电子邮件

    Java代码实现发送QQ和网易电子邮件

    这篇文章主要为大家详细介绍了如何通过Java代码实现发送QQ和网易电子邮件功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2026-02-02
  • SpringBoot使用SOFA-Lookout监控的方法

    SpringBoot使用SOFA-Lookout监控的方法

    本文介绍SpringBoot使用蚂蚁金服SOFA-Lookout配合Prometheus进行监控,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • java泛型类的定义与使用详解

    java泛型类的定义与使用详解

    这篇文章主要为大家详细介绍了java泛型类定义与使用的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • 详解基于Spring Data的领域事件发布

    详解基于Spring Data的领域事件发布

    这篇文章主要介绍了详解基于Spring Data的领域事件发布,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • Spring Cloud 使用 Resilience4j 实现服务熔断的方法

    Spring Cloud 使用 Resilience4j 实现服务熔断的方法

    服务熔断是为了保护我们的服务,比如当某个服务出现问题的时候,控制打向它的流量,让它有时间去恢复,或者限制一段时间只能有固定数量的请求打向这个服务,这篇文章主要介绍了Spring Cloud 使用 Resilience4j 实现服务熔断,需要的朋友可以参考下
    2022-12-12
  • Java17新特性之Text Blocks文本块的使用

    Java17新特性之Text Blocks文本块的使用

    Java 17引入了Text Blocks(文本块)特性,这是Java语言中一种新的字符串表示方式,本文就来详细的介绍一下文本块的使用,感兴趣的可以了解一下
    2025-10-10
  • Spring MVC+mybatis实现注册登录功能

    Spring MVC+mybatis实现注册登录功能

    这篇文章主要为大家详细介绍了Spring MVC+mybatis实现注册登录功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • Java使用JDBC或MyBatis框架向Oracle中插入XMLType数据

    Java使用JDBC或MyBatis框架向Oracle中插入XMLType数据

    XMLType是Oracle支持的一种基于XML格式存储的数据类型,这里我们共同来探究Java使用JDBC或MyBatis框架向Oracle中插入XMLType数据的方法:
    2016-07-07
  • SpringBoot远程调用(HTTP)实现过程

    SpringBoot远程调用(HTTP)实现过程

    本文介绍了JDK中常用的HTTP客户端库,包括HttpURLConnection、Apache HttpClient、OkHttp、RestTemplate和WebClient,并详细比较了WebClient和RestTemplate的异同,同时,文章还介绍了Reactor项目中的Mono和Flux等反应式编程概念,以及如何在异步非阻塞环境中使用这些工具
    2025-11-11

最新评论