java - 用 Java 压缩文件时权限被拒绝

标签 java gunzip

鉴于我使用以下代码来压缩“.gz”文件:

public class TestCSVDataToMap {
    private static final String INPUT_GZIP_FILE = "/opt/old.csv.gz";
    private static final String OUTPUT_FILE = "/opt/new.csv";
    public static void main(String[] args) throws IOException{
        TestCSVDataToMap dm = new TestCSVDataToMap();
        dm.gunzipIt();
    }

public void gunzipIt(){

     byte[] buffer = new byte[1024];

     try{

         GZIPInputStream gzis = 
            new GZIPInputStream(new FileInputStream(INPUT_GZIP_FILE));

         FileOutputStream out = 
            new FileOutputStream(OUTPUT_FILE);

        int len;
        while ((len = gzis.read(buffer)) > 0) {
            out.write(buffer, 0, len);
        }

        gzis.close();
        out.close();

        System.out.println("Done");

    }catch(IOException ex){
       ex.printStackTrace();   
    }
   } 

}

抛出这样的异常:

java.io.FileNotFoundException: /opt/new.csv (Permission denied)

这是因为路径“/opt”不允许进行任何更改。但我可以使用

sudo gunzip /opt/old.csv.gz

解压缩文件。那么在 Java 中,我应该怎么做才能像“sudo”一样?

最佳答案

Java 中没有 sudo 的标准方法。但是您可以sudo您的Java程序sudo java TestCSVDataToMap

Java 并不是为管理操作系统进程访问权限而设计的。

关于java - 用 Java 压缩文件时权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26536178/

相关文章:

java - 优化 Java 中的 Ungunzipping 过程?

linux - 提取并删除目录中的所有.gz - Linux

gzip - 如何在不解压缩的情况下检查 Unix .tar.gz 文件是否是有效文件?

compression - 解压gz SQL文件

java - 使用即时版本的 <gunzip> Ant 任务的 NullPointerException

java - 在 Pattern 对象中为 java 字符串设置正则表达式

java - 获取 Runnable 的当前实例

java - 用 OO 方法替换 if else

java - JNativeHook 发布原生按键事件

java - 如何从 executeBatch 获取 ResultSet?