首页 > 解决方案 > 使用 FileWriter 的控制台输出

问题描述

很可能 aFileWriter并不是要写入控制台,但确实如此。所以我用它来在两个目的地之间轻松切换。我只是想知道当涉及到 8 位字符时会发生什么字符转换。

System.out.println(...)在没有任何参数的情况下运行以下代码,您将看到和FileWriter的输出之间的区别。运行将文件规范作为参数的代码,您将看到 FileWriter按预期工作。

我尝试过了:

但无济于事。

其他解决方案随时可用,但我仍然想知道是否可以使用 a FileWriter

import java.io.*;
import java.nio.charset.*;

public class ConsoleOutput {

  static public void main(String args[]) {
    String s = "Hello äöüß áàâçéèê";
    String filespc = args.length==0 ? "CON:" : args[0];

    boolean console= filespc.equals("CON:"); // For both cmd.exe & PowerShell.
    try (BufferedWriter outfile= new BufferedWriter(new FileWriter(filespc))) {
      
//      if (console) s = new String(s.getBytes(StandardCharsets.UTF_8),
//                          StandardCharsets.UTF_8);
      System.out.println(s);
      outfile.write(s);
      outfile.newLine();
    }
    catch (IOException e) {
      System.out.println(e);
    }

  }
}

标签: javaiocharacter-encodingjava-iofilewriter

解决方案


推荐阅读