问一下这两种构造方法有什么不同吗
new PrintWriter(new OutputStreamWriter(socket.getOutputStream()))
new PrintWriter(socket.getOutputStream());

解决方案 »

  1.   

    new PrintWriter(new OutputStreamWriter(socket.getOutputStream()))得到的是字符输出流
    new PrintWriter(socket.getOutputStream())得到的是字节输出流
    前者可以用于中文的而不会产生乱码。
    PrintWriter() ;属于装饰设计根据传入的流的不同来拓展其方法,使其拥有更多的功能。
      

  2.   

    printwriter 得到的不都是字符输出流吗?
      

  3.   

    它只是一个装饰类。你可以查看JDK文档就知道了。它是根据实例化对象的不懂而增加该实例化对象的方法,使其具备有更多的能力。这也是java重要的设计模式之一。