`
xinglongbing
  • 浏览: 146464 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Socket.getOutputStream与Socket.getInputStream

阅读更多

OutputStream Socket.getOutputStream()与InputStream Socket.getInputStream()

分别返回SocketOutputStream对象和SocketInputStream对象。

OutputStream中有三个write方法:

void write(byte[] b)
          将 b.length 个字节从指定的 byte 数组写入此输出流。
 void write(byte[] b, int off, int len)
          将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此输出流。
abstract  void write(int b)
          将指定的字节写入此输出流。

 

而InputStream中有三个read方法:

abstract  int read()
          从输入流中读取数据的下一个字节。
 int read(byte[] b)
          从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。
 int read(byte[] b, int off, int len)
          将输入流中最多 len 个数据字节读入 byte 数组。

 

对其中的read(byte[] b)和read(byte[] b, int off, int len)的调用要引起注意:这两个方法并不保证能够将流中的所有字节读入到数组中,今天实验室有同学遇到此类问题,发现最多只能够从流中读取:65536个字节,当使用缓冲区的时候这个数字好像会发生变化。

 

从一个流中读取全部的数据最可靠的方法还是用一个循环一次读取一个字节直到流的末尾。

 

分享到:
评论

相关推荐

    Java多线程(适合Java初学者查看).zip

    OutputStream out = socket.getOutputStream(); ObjectOutputStream objout = new ObjectOutputStream(out); // 向服务器发送信息 objout.writeObject(user); socket.shutdownOutput(); System....

    计算机网络课程设计

    import java.io.BufferedReader;...BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));PrintWriter writer = new PrintWriter(socket.getOutputStream(), true);

    聊天的终端和服务器.txt

    BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter out = new PrintWriter(socket.getOutputStream(),true); BufferedReader br = new Buffer

    java项目超市

    InputStream is = socket.getInputStream(); ObjectInputStream ois =new ObjectInputStream(is); // 2.获取输出流 OutputStream os = socket.getOutputStream(); ObjectOutputStream oos =new ...

    socket应用小程序

    dout = new DataOutputStream(socket.getOutputStream()); start(); }catch(IOException e){ System.out.println(e.getMessage()); } } public void run(){ String str; try{ System.out....

    JAVA实现SOCKET聊天

    dataOut = new ObjectOutputStream(socket.getOutputStream()); listener = new Thread(this); listener.start(); } catch (IOException ioException) { ioException.printStackTrace(); } } } public ...

    Socket编程实验报告.docx

    实验报告 实验一 Socket编程 一、实验目的 通过socket程序的编写、调试,掌握socket编程的基本方法,了解客户端与服务器端的特点,掌握并熟悉运用socket类与ServerSocket类。 实验内容 学习socket编程使用的类和接口...

    android实现的个人网络聊天室

    PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true); out.println(message); //接收来自服务器的消息 BufferedReader ...

    java 大一课程设计 qq聊天程序

    out=new ObjectOutputStream(socket.getOutputStream()); in=new ObjectInputStream(socket.getInputStream()); ps.writeUTF(name);//开始即传输用户名 ps.flush(); setTitle("用户...

    wangluo java课程设计

    reader=new BufferedReader(new InputStreamReader(socket.getInputStream())); writer=new PrintWriter(socket.getOutputStream(), true); String msg;//从输出流获取信息 while((msg=reader.readLine())!=null...

    计算机网络实验报告 获取MAC socket通信

    sk.getOutputStream()); // 利用网络输出流将文件传到客户端 边读边发送 int len=0; byte[] buff = new byte[1024]; while((len=fis.read(buff))!=-1){ os.write(buff, 0, len); os.flush(); } } ...

    android 上传文件

    OutputStream outStream = socket.getOutputStream(); String head = "Content-Length="+ file.length() + ";filename="+ file.getName() + ";sourceid="+ (sourceid==null? "" : sourceid)+"\r\n"; ...

    java网络编程示例

    OutputStream oStream = socket.getOutputStream(); DataOutputStream dataOutputStream = new DataOutputStream(oStream); dataOutputStream.writeUTF("Hello"); } catch (UnknownHostException e) { ...

    局域网聊天

    writer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(),"gbk")); reader = new BufferedReader(new InputStreamReader( socket.getInputStream(),"gbk")); Message msg=new ...

    Java Socket 编程源代码示例

    Socket socket = accept(); while (true) { new ServerReaderThread(socket); new ServerWriterThread(socket); } } finally { close(); } } public static void main(String[] args) ...

    javaQQ聊天室+SocketTCP

    br=new BufferedReader(new InputStreamReader(s.getInputStream())); str = br.readLine(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return str; } }

    基于JAVA的网络聊天室(BS)

    out=new DataOutputStream(socket.getOutputStream()); } catch (IOException ee) { 提示条.setText("连接失败"); } if(socket!=null) { InetAddress address=socket.getInetAddress(); 提示条.setText(...

    socket编程集萃

     上面两句就是建立缓冲并把原始的字节流转变为Unicode可以操作,而原始的字节流来源于Socket的两个方法,getInputStream()和getOutputStream()方,分别用来得到输入和输出,那么现在有了基本的模型和基本的操作工具...

    QQ Server 端代码

    rebuf = new BufferedReader(new InputStreamReader(s1.getInputStream())); String message = rebuf.readLine(); if(message.equalsIgnoreCase("exit")){ clients.remove(id); break; } ...

    桌面管家源码(java)

    in=new BufferedReader(new InputStreamReader(socket.getInputStream()));//打开接受输入流 String str = in.readLine();//输出接受信息 if("ftn".equals(substring(0,3))) { patch1=Integer.parseInt(str....

Global site tag (gtag.js) - Google Analytics