A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   /  2014-7-30 23:14  /  2921 人查看  /  24 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

付江涛 发表于 2014-7-31 12:12
当使用bufOut.write()时,底层还是使用了s.getOutputStream()获取的OutputStream对象的write()方法。 {:3_6 ...
  1. PrintStream out = System.out;
  2. out.println("hello");

  3. OutputStream out = System.out;
  4. out.write("hello".getBytes());
复制代码

看,也没有 new 对象,也没有传参数,也能正常运行不是。
所以回答是,因为它不需要传参数…
回复 使用道具 举报
付江涛 发表于 2014-7-31 14:31
PrintStream和OutputStream都指定了输出的位置:Sysetem.out

但我还是不明白s.getOutputStream()获取的O ...

System.out 本身是一个 PrintStream ,它不是目标位置,但它有自己的目标位置(控制台或终端)。
s.getOutputStream() 本身是一个 OutputStream ,它也有自己的目标位置,就是流(或者说流的那一端的 InputStream)

你不要区别对待,如果一定要写出来才叫指定, System.out 也是没有指定的
回复 使用道具 举报
付江涛 发表于 2014-7-31 14:39
意思就是说 Socket相当于硬盘、内存?客户端通过write()将数据写在服务端的Socket里,然后服务端通过read ...

理解怎么都行…知道这个 Output 是往外传的就行了…
IO 的最后一天有一个管道流,PipedInputStream 和 PipedOutputStream ,两个管道接起来传数据,差不多是一个道理
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马