2

我想将我的输出另存为指定文件夹。以下代码会将输出保存在项目根目录中。我怎样才能改变它?

public static void main(String[] args) throws Exception {
      FileOutputStream f = new FileOutputStream("file.txt");
      System.setOut(new PrintStream(f));
      System.out.println("This is System class!!!");
}

此外,我曾尝试在 Eclipse 中更改“运行配置”->“通用”->“输出文件”,但这对我没有帮助。

4

1 回答 1

2

除了直接将 Filename 传递给 FileOutputStream 之外,您需要将 File 实例传递给它,如下所示:

File directoryLogs = new File("logs");
fileDirectory.mkdirs(); // Create the directory (if not exist)

File fileLog = new File(directoryLogs, "log.txt");
fileLog.createNewFile(); // Create the file (if not exist)

然后

 public static void main(String[] args) throws Exception {

    // Create a log directory
    File directoryLogs = new File("logs");
    fileDirectory.mkdirs();

    // Create a log file
    File fileLog = new File(directoryLogs, "log.txt");
    fileLog.createNewFile();

    // Create a stream to to the log file
    FileOutputStream f = new FileOutputStream(fileLog);

    System.setOut(new PrintStream(f));
    System.out.println("This is System class!!!");

    // You should close the stream when the programs end
    f.close();
}

如果要完全更改日志目录的路径,还可以在此处指定绝对路径

// NB: Writing directly to C:\ require admin permission
File directoryLogs = new File("C:\\MyApplication\\logs");
于 2018-01-10T09:55:41.187 回答