readLine(byte[] b, int off, int len) 方法中首先它是按行读取..如何它读到换行符就会读取下一行byte[] b是按字节读取方式的..还有是按字符读取的..例如BufferedReadernew byte[4096]..定义了最大的字节长度...off规定从哪里读取..len是读取的长度...
还是不太明白,能不能详细的解释一下呢? 按本例来说,是不是每次 读取时是按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); 后边执行输出,但并不是页面的每一行都输出,为什么?
网上说byte[] b起缓冲的作用,但我还是不明白,谁能给我详细的讲一下啊 假如 byte[] b = new byte[4096]; 那么我是读取的一行吗,如果一行大于4kb,会怎么样呢?那就只读那么长了超过就不读了吧
楼主【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
如果那行大于4KB时,应该有个默认的吧,或者是前4KB,或者是后4KB
readLine()直接是按行读取的,它不管那行的大小
按本例来说,是不是每次 读取时是按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); 后边执行输出,但并不是页面的每一行都输出,为什么?
假如 byte[] b = new byte[4096]; 那么我是读取的一行吗,如果一行大于4kb,会怎么样呢?那就只读那么长了超过就不读了吧