流( 和 ) 传输二进制数据。如果要将字符串写入流,必须首先将其转换为字节,或者换句话说,对其进行编码。您可以使用该方法手动执行此操作(如您所建议的那样),但您应该避免使用该方法,因为它使用JVM的默认编码,无法以可移植的方式可靠地预测。InputStream
OutputStream
String.getBytes(Charset)
String.getBytes()
但是,将字符数据写入流的常用方法是将流包装在编写器
(通常是 PrintWriter
)中,当您调用其 write(String)(
或 print(String))
方法时,它会为您执行转换。InputStreams 的相应包装器是读取器。
PrintStream
是一种特殊的实现,因为它还包含自动编码字符串的方法(它在内部使用编写器)。但它仍然是一条溪流。您可以使用编写器安全地包装流,无论它是其他流实现。不存在双重编码的危险。OutputStream
PrintStream
带有输出流的 PrintWriter 示例:
try (PrintWriter p = new PrintWriter(new FileOutputStream("output-text.txt", true))) {
p.println("Hello");
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}