Java OutputStreamWriter和ByteArrayOutputStream

Java OutputStreamWriter和ByteArrayOutputStream,java,Java,为什么第一个示例打印字符串12345,而第二个示例不打印 public static void main(String[] args) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { baos.write("12345".getBytes()); } catch (Exception e) { e.printStackTrace(); }

为什么第一个示例打印字符串12345,而第二个示例不打印

    public static void main(String[] args) {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();

    try {
        baos.write("12345".getBytes());
    } catch (Exception e) {
        e.printStackTrace();
    }

    String output = baos.toString();
    System.out.println(output);
    }

    public static void main(String[] args) {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    OutputStreamWriter osw = new OutputStreamWriter(baos);

    try {
        osw.write("12345");
    } catch (Exception e) {
        e.printStackTrace();
    }

    String output = baos.toString();
    System.out.println(output);
    }
我没有正确使用OutputStreamWriter吗


谢谢

在第二个示例中,您需要刷新流,因为
OutputStreamWriter
在内部使用缓冲区

这是在报告中提到的


写下后添加一个
osw.flush()
,那是一个深夜,我看不见树林。我发现ows.close()为我解决了这个问题。谢谢你的回答,不过,我会奖励积分,因为这也解决了我的问题。
osw.flush();