我从socket 接收到inputStream 流,我要读两次,
第一次读出来要判断是什么类型的字符串,
第二次要写到文件里现在问题是第一次可以读到,第二次写在文件里的就是空的,
如果第一次不读流,直接写在文件里就是可以的是不是流第一次读完要做一下处理,才能读第二次呢?
要做什么处理

解决方案 »

  1.   

    读一次
    俩次会报错<code>
    java.io.EOFException
    at java.io.DataInputStream.readByte(DataInputStream.java:250)

    </code>
      

  2.   

    不会读两次的, 因为socket和MQ差不多,只要相互通信了,来了消息,就会被一次取走。
      

  3.   

    不可以读两次的,只能读一次,InputStream就类比成一个杯子,杯子里的水就像InputStream里的数据,你把杯子里的水拿出来了,杯子的水就没有了,InputStream也是同样的道理!!所以你想要多次使用InputStream里面的数据,那就保存在一个String里面,这样你想怎么用就怎么用,也没有必要去重复去读InputStream。
      

  4.   

    有一个InputStream,里头存的是一个xml数据,读完后,我用is.toString()发现还能取得里头的xml信息,这个又怎么解释?