带有 FileWriter 的控制台输出

问题描述

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

不带任何参数运行下面的代码,你会看到区别 System.out.println(...)FileWriter输出之间。 运行提供文件规范作为参数的代码,您将看到 FileWriter 按预期工作。

我试图:

  • 将测试字符串翻译成UTF-8
  • 将字符集 (StandardCharsets.UTF_8,Charset.defaultCharset()) 传递给 FileWriter
  • FileDescriptor.out 指定 FileWriter

但无济于事。

其他解决方案已准备就绪,但我仍然想知道是否可以使用 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);
    }

  }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)