timi先生 2020-08-30 22:15 采纳率: 50%
浏览 111

程序输出java.io.PrintStream@3f3afe78是咋回事


import java.io.*;

public class Solution {
    public static TestString testString = new TestString();

    public static void main(String[] args) throws  IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String name = reader.readLine();

        FileOutputStream fox = new FileOutputStream(name);

        PrintStream consoleStream = System.out;
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        PrintStream stream = new PrintStream(outputStream);
        System.setOut(new PrintStream(fox));

        testString.printSomething();
        System.setOut(consoleStream);
        String r = stream.toString();
        System.out.println(r);

        fox.flush();
        fox.close();
        reader.close();

    }

    public static class TestString {
        public void printSomething() {
            System.out.println("这是用于测试的文本12345");
        }
    }
}


这是一个将printSomething()方法中的内容写入控制台输入的文件地址中,并在控制台显示输出的程序,写入没有问题,显示输出却显示的是 :java.io.PrintStream@3f3afe78;并非计划中的:这是用于测试的文本12345。

这个是为什么,要咋改正。

  • 写回答

2条回答 默认 最新

  • threenewbee 2020-08-31 08:50
    关注

    String r = stream.toString();
    不能这么写
    byte[] bytes = new byte[stream.available()];
    stream.read(bytes);
    String r = new String(bytes);

    评论

报告相同问题?

悬赏问题

  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)