readLine(byte[] b, int off, int len) 方法中
网上说byte[] b起缓冲的作用,但我还是不明白,谁能给我详细的讲一下啊
假如 byte[]  b  =  new  byte[4096]; 那么我是读取的一行吗,如果一行大于4kb,会怎么样呢?

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【jiangpan2008】截止到2008-07-05 08:50:58的历史汇总数据(不包括此帖):
    发帖的总数量:0                        发帖的总分数:0                        
    结贴的总数量:0                        结贴的总分数:0                        
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:---------------------结分的百分比:---------------------
    无满意结贴率:---------------------无满意结分率:---------------------
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
      

  2.   

    对呀,byte[] b是起缓冲的作用,它每次读取时是按4KB的大小读取的,
    如果那行大于4KB时,应该有个默认的吧,或者是前4KB,或者是后4KB
    readLine()直接是按行读取的,它不管那行的大小
      

  3.   

    readLine(byte[] b, int off, int len) 方法中首先它是按行读取..如何它读到换行符就会读取下一行byte[] b是按字节读取方式的..还有是按字符读取的..例如BufferedReadernew byte[4096]..定义了最大的字节长度...off规定从哪里读取..len是读取的长度...
      

  4.   

    还是不太明白,能不能详细的解释一下呢?
    按本例来说,是不是每次 读取时是按4KB?
    我看有的程序是这样写的
    (注:
        1.HttpServletRequest  request 是参数,可以理解为一下代码是写在serlvet中
        2.byte[]  b  =  new  byte[4096];  //字节流存放数组  

    ServletInputStream sis  =  request.getInputStream();  
    while((a  =  sis.readLine(b,0,b.length))!=-1){  
        s  =  new  String(b,  0,  a);  
        ......
    }我想问的是 
    1.如果页面中的一行大于 4KB会出现什么情况?对byte[] b是起缓冲的作用 不太理解?
    2.上面的循环起什么作用?
    3.我在运行时  在语句s  =  new  String(b,  0,  a);  后边执行输出,但并不是页面的每一行都输出,为什么?
      

  5.   

    网上说byte[] b起缓冲的作用,但我还是不明白,谁能给我详细的讲一下啊 
    假如 byte[]  b  =  new  byte[4096]; 那么我是读取的一行吗,如果一行大于4kb,会怎么样呢?那就只读那么长了超过就不读了吧