将FileOutputStream转换为字符串

4
我有一个Java程序,使用OutputStream将数据写入文件。一切都运行良好,在程序完成后,我看到文件中的数据。但是,我也想在System.out上看到这些数据。
如何将OutputStream转换为String,以便我可以简单地System.out.println();它?我尝试了fos.toString(),但打印出来的是java.io.FileOutputStream@1ed2e55e

只需将您传递给OutputStream的任何数据传递到System.out.println()以写入文件。 - inixsoftware
或者在你写完文件后打开一个FileInputStream从文件中读取你写入的数据 - 然后使用BufferedReader逐行读取并打印出来。这只有在你想要确认数据被正确写入时才有意义。 - Daniel Gabriel
如果文件内容不是太大,你可以直接打印输出 new String(Files.readAllBytes(Paths.get("file.txt")), "UTF-8")。就像inixsoftware所说的那样。 - sgbj
我正在使用循环将数据写入 fos,代码如下:fos.write((byte) mybyte)。但是,当我尝试对 String s = (byte) mybyte 进行相同的操作时,会出现错误。 - birdy
可以选择使用 System.out.print((char) mybyte); 或者 sb.append((char) mybyte); - sgbj
你可以编写自己的 FilterOutputStream,并且可以并行地将数据写入到 System.out - Sotirios Delimanolis
1个回答

4
使用 ByteArrayOutputStream,你可以从中创建一个字符串。假设在以下示例中,'stream'变量是指向你的 ByteArrayOutputStream 的引用,下面是如何实现的...
System.out.println(new String(stream.toByteArray(), CharSet.defaultCharSet()));

编辑:上面缺少一个右括号,已经修复


1
你忘记了 ) -> System.out.println(new String(stream.toByteArray(), CharSet.defaultCharSet())); - utarid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接