当前位置:  技术问答>java相关

InputStream的问题,帮帮我。

    来源: 互联网  发布时间:2015-03-05

    本文导语:  程序如下:   int bufsize=1024;   byte[] buf=new byte[bufsize];   StringBuffer sb=new StringBuffer();   String result="";   String cgipath="http://myhost/cgi-bin/test.exe";   URL cgiurl=new URL(/tech-qa-java/cgipath/index.html);   InputStream is=cgiurl.openStream();   int j=is.r...

程序如下:
  int bufsize=1024;
  byte[] buf=new byte[bufsize];
  StringBuffer sb=new StringBuffer();
  String result="";
  String cgipath="http://myhost/cgi-bin/test.exe";
  URL cgiurl=new URL(/tech-qa-java/cgipath/index.html);
  InputStream is=cgiurl.openStream();
  int j=is.read(buf,0,bufsize);
  while(j!=-1){
    sb.append(new String(buf,0,j));
    j=is.read(buf,0,j);
  }
  result=new String(sb);

 cgi里的数据流是取出来了,但是问题是中间有掉帧的情况,也就是说,java从CGI流里取的数据,中间会掉一些字节,而且掉得也有点规律,cgi里的流输到文件里是正常的。请帮我分析一下,这段程序有什么毛病,谢谢!

|
int bufsize=1024;
  byte[] buf=new byte[bufsize];
  byte[] buf2 = new byte[0];
  String result="";
  String cgipath="http://myhost/cgi-bin/test.exe";
  URL cgiurl=new URL(/tech-qa-java/cgipath/index.html);
  InputStream is=cgiurl.openStream();
  int j=is.read(buf,0,bufsize);
  while(j!=-1){
    byte[] buf3 = new byte[buf2.length + j];
    System.arraycopy(buf2, 0, buf3, 0, buf2.length);
    System.arraycopy(buf, 0, buf3, buf2.length, j);
    buf2 = buf3;
    j=is.read(buf,0,bufsize);
  }
  result=new String(buf2);


|
public int read(byte[] b,
                int off,
                int len)
         throws IOException


sb.append will return some value

|
make a BufferedStream from the InputStream and work with the BufferedStream.

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.io类inputstream的类成员方法: inputstream定义及介绍
  • 奇怪,为什么BufferedInputStream的构造器参数是(InputStream in)和(InputStream in,int size)啊?InputStream是抽象类,怎么能被实例化呢?
  • java命名空间java.io类inputstream的类成员方法: close定义及介绍
  • 如何将String转换为InputStream,如何将InputStream转换为String(高手请进)
  • java命名空间java.io类inputstream的类成员方法: marksupported定义及介绍
  • 请问如何把StringBuffer 的对象转化成一个InputStream 的对象,或者InputStream 子类的对象也可以!
  • java命名空间java.io类inputstream的类成员方法: available定义及介绍
  • InputStream and String如何相互转换?( 在线等待中)
  • java命名空间java.io类inputstream的类成员方法: mark定义及介绍
  • InputStream流写到数据库里抛出以下的异常??
  • java命名空间java.io类inputstream的类成员方法: skip定义及介绍
  • 如何将字符型变量转化为InputStream型变量?
  • java命名空间java.io类inputstream的类成员方法: reset定义及介绍
  • InputStream读不了1000个字节后面的字节,怎么回事?
  • java命名空间java.io类inputstream的类成员方法: read定义及介绍
  • 只使用InputStream/OutputStream进行IO操作行吗?
  • 如何将char[]转化为InputStream?
  • 请问:已经得到一个输入流(InputStream)如何读出缓冲区中的内容,字节形式,返回byte[]
  • 请问:InputStream is =getClass().getResourceAsStream("/db.properties")中,getResourceAsStream 是什么意思,文件db.properties应该
  • 如何创建一个file,直接把一个string写入这个file?是否可以不用到outputStream和inputStream?
  • inputStream,outputStream与writer和reader的本质区别。


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3