将文件输出流转换为字符串

Posted

技术标签:

【中文标题】将文件输出流转换为字符串【英文标题】:Convert fileoutputstream to a string 【发布时间】:2013-09-12 20:05:34 【问题描述】:

我有一个 java 程序,我正在使用 OutputStream 写入文件。一切正常。程序完成后,我会在文件中看到数据。但是,我也想在System.out 上看到这些数据。

如何将OutputStream 转换为String 以便我可以简单地System.out.println(); 它?我试过fos.toString(),但打印出来的是java.io.FileOutputStream@1ed2e55e

【问题讨论】:

只需将您传递给OutputStream的任何数据传递给System.out.println()即可写入文件 或者在您完成对文件的写入后,打开FileInputStream 以从文件中读取您写入的内容 - 然后使用BufferedReader 逐行读取并打印。仅当您想查看数据是否正确写入时,这才有意义。 inixsoftware 说了什么,或者如果文件不是太大而无法立即阅读,您可以将其打印出来new String(Files.readAllBytes(Paths.get("file.txt")), "UTF-8") 我正在循环写信给 fos:fos.write((byte) mybyte) 但是,当我对String s = (byte) mybyte 执行相同操作时,我会出错 System.out.print((char) mybyte);sb.append((char) mybyte); 【参考方案1】:

使用 ByteArrayOutputStream,您可以从中创建一个字符串。假设 'stream' 变量是对以下示例中的 ByteArrayOutputStream 的引用,那么您可以这样做...

System.out.println(new String(stream.toByteArray(), CharSet.defaultCharSet()));

编辑:上面缺少右括号,现已修复

【讨论】:

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

以上是关于将文件输出流转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章

Java题目:编写程序,将一个字符串转为字节数组输入流。转换为大写字母输出。

转换流

OutputStreramWriter和InputStreamReader类

转换流:InputStreamReaderOutputStreamWriter

JAVA:已知获取文件的输出流ouputStream,怎么转换为文件

转换流:将字节输出流变成字符输出流-OutputStreamWriter