java - 使用 FileWriter 的控制台输出
问题描述
很可能 aFileWriter
并不是要写入控制台,但确实如此。所以我用它来在两个目的地之间轻松切换。我只是想知道当涉及到 8 位字符时会发生什么字符转换。
System.out.println(...)
在没有任何参数的情况下运行以下代码,您将看到和FileWriter
的输出之间的区别。运行将文件规范作为参数的代码,您将看到
FileWriter
按预期工作。
我尝试过了:
- 将测试字符串翻译成UTF-8
- 将字符集传递
(StandardCharsets.UTF_8, Charset.defaultCharset())
给FileWriter
- 指定
FileDescriptor.out
为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);
}
}
}
解决方案
推荐阅读
- alert - 是否可以在 Grafana 中评估历史数据的警报规则?
- kubernetes - Ingress.yaml 模板抛出 nil 指针评估接口 {}.enabled
- pandas - 将 pandas df 存储在 s3 中并能够检索单个列
- mysql - sql工作台上的单独表而不是单个表
- python - FastAPI 和 Peewee - InterfaceError
- c++ - 演绎指南是否需要 noexcept 说明符?
- algorithm - 图形LASSO中算法解决方案和MATLAB CVX解决方案的区别?
- sql - 获取时间为 00:00:00/23:59:59 的当前日期
- python - 没有 Scipy 的双变量插值
- bash - jq 将 2 个文件合并为关联的“json”文件