已采纳回答 / 慕粉1466417893
1. 为什么要用PrinterWriter?因为我们写程序的时候,往Socket里写数据,写的都是文本,都是字符,所以PrinterWriter用于程序员写入数据。因为PrinterWriter是包装的OutputStream,底层实现数据传输的时候,会把我们写入的字符转换成二进制数据,就是字节流,所以传输的时候都是字节流传输。2. 为什么要用InputStream接收?上面讲到了,底层传输的时候,都是字节流,所以要用InputStream读取,还要用BufferedReader转换成字符流,也是为了方便...
2016-06-21
至于为什么getPort()返回-1,去看源码就知道了,URL有一个成员变量port,初始值就是-1.如果在new实例的时候,传入了大于等于-1的端口号,则会把这个端口号值赋给成员变量port,当然,如果传入了小于-1的端口,则抛异常。就这么简单,源码就这么写的,有什么好奇怪的!
2016-06-21
最新回答 / Halona_zx
在while里面添加一句:c = br.readLine();while (c != null) {// 循环读取服务器发送的信息System.out.println("后面是从服务器发过来的消息" + c);c = br.readLine();}
2016-06-19
最新回答 / SoyaDokio
有的,你看看这几个类就知道了:java.io.FileInputStream;java.io.FilterInputStream;java.io.DataInputStream;java.io.ObjectInputStream;java.io.ByteArrayInputStream;对应的output流就不写了。
2016-06-14
已采纳回答 / SoyaDokio
有一种解释是如果需要向流中输出的是文字之类的字符型数据,则使用这个组合:<...code...>如果需要向流中输出的是文件之类的二进制型数据,则使用这个组合:<...code...>
2016-06-07