System.getenv(“ OUTPUT_PATH”)的正确参数值是多少?

问题描述 投票:0回答:1

我第一次加入Hackerrank。仅出于一些练习目的。然后,我找到了这条线

BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));

并对"OUTPUT_PATH"的正确替代品感到困惑。因为代码已复制到我的IDE(Eclipse)中,所以我阅读了文档,但没有保留值适合。他们都扔了NPE。

在我的情况下,System.getenv("..")的正确参数值是多少?

如果您需要完整的代码:

import java.io.*;
import java.math.*;
import java.text.*;
import java.util.*;
import java.util.regex.*;
import javax.swing.JOptionPane;
public class Solution {

    /*
     * Complete the simpleArraySum function below.
     */
    static int simpleArraySum(int[] ar) {
        return 2;

    }

    private static final Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) throws IOException {
        //name − This is the name of the environment variable.
        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));

        int arCount = Integer.parseInt(scanner.nextLine().trim());

        int[] ar = new int[arCount];

        String[] arItems = scanner.nextLine().split(" ");

        for (int arItr = 0; arItr < arCount; arItr++) {
            int arItem = Integer.parseInt(arItems[arItr].trim());
            ar[arItr] = arItem;
        }

        int result = simpleArraySum(ar);

        bufferedWriter.write(String.valueOf(result));
        bufferedWriter.newLine();

        bufferedWriter.close();
    }
}
java bufferedreader
1个回答
0
投票

正如我在评论中所说,您不应替换它。这是外壳程序中用于运行解决方案的环境变量。

[将变量的值传递给FileWriter,这意味着它代表文件名。

您可以通过使用以下命令运行程序来在终端中复制它:

env OUTPUT_PATH=/path/to/some/file java Solution

这将启动一个新的外壳,其中包含一个名为OUTPUT_PATH的变量,该变量指向名为/path/to/some/file的文件,并且在程序启动时,将使用该文件名


0
投票

即“ OUTPUT_PATH”是环境变量。您必须在操作系统中声明该变量才能使用它。通常,像hackerrank这样的网站都这样做,因为我猜想学习那里系统的路径不利于安全。您可以在IDE中测试代码,但是环境变量不在您需要声明的位置。希望它对您的困惑有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.