将文件输出流转换为字符串
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