繁体   English   中英

用Java Gunzip文件时拒绝权限

[英]Permission denied when gunzip a file in 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并非旨在管理OS进程访问权限。

使用sudo启动java进程

sudo java -jar myjar.jar

或者,写入您确实具有写入权限的文件夹(例如/tmp$HOME )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM