2 cai493199904 cai493199904 于 2014.02.14 13:50 提问

java流中read(byte[] b)和read(byte[] b,int off,int len)有什么区别

InputStream in = new FileInputStream(sourcePath);

byte[] b = new byte[1024];
while (in.read(b,0,1023)!=-1) {
System.out.println(new String(b));
};

while (in.read(b)!=-1) {
System.out.println(new String(b));
};
有什么区别?

3个回答

Foible
Foible   2014.02.14 16:54

后者定义了流读取时的缓冲区大小

franzhong
franzhong   2014.02.16 17:59

带offset的功能更强大点
特别是计算百分比时候会很方便一些
都可以搞断点续传了
想像一下进度条

//还有一个read()无参数的,总共三个read方法

u013540525
u013540525   2014.10.13 11:11

楼上说的对,后者定义了读取时缓冲区的大小,因为不是每次读取时缓冲区的数据都是最新的数据,比如,最后一次读取,很可能往缓冲区注入的数据不是byte【】的length,所以需要每次读取时确定往缓冲区中注入数据的长度。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
教你完全理解IO流里的 read(),read(byte[]),read(byte[],int off,int len)以及write
len的作用 write(bytes);不严谨,后续有空的 write(bytes,0,len);严谨,和原来一模一样
InputStream当中read()、read(byte[] b)、read(byte[] b、int off 、int len)的使用
下面就说说InputStream当中read()、read(byte[]  b)、read(byte[] b、int off 、int len)的使用以及区别(以txt文本的复制为例通过代码以及注释说明): 一、read()方法: public static void inputStreamRead1() {       try{             //构造一
java.io.InputStream.read(byte[] b, int off, int len)
java.io.InputStream.read(byte[] b, int off, int len) 方法从输入流读取转换为字节数组数据达到len个字节。如果参数len为0,则读取任何字节并返回0;否则有尝试读取至少一个字节。如果该流是在该文件的末尾,则返回的值为-1。 声明 以下是java.io.InputStream.read(byte[] b, int off, int le
原理讲解-ServletInputStream.readLine(byte[] b, int off, int len) 方法
原理讲解-ServletInputStream.readLine(byte[] b, int off, int len) 方法原理讲解-ServletInputStream.readLine(byte[] b, int off, int len) 方法
write(byte b[], int off, int len)与write(byte b[])
在进行写文件的时候有时候返现,通过write(byte b[])方式写文件比原来的文件大一些。流程代码: public static void main(String[] args) throws Exception { long t1 = System.currentTimeMillis(); File file = new File("d:/11.jpg
java中write(byte[] b)与write(byte[] b,int off,int len)区别
在项目中要做图片上传功能,由于用了struts2 文件上传方便了很多,在actoin中增加如下方法就可以了: private static final int BUFFER_SIZE = 16 * 1024; private static void copy(File src, File dst) {         try {             InputStrea
java.io.OutputStream.write(byte[] b, int off, int len)方法实例
java.io.OutputStream.write(byte[] b, int off, int len) 方法从指定的字节数组开始到当前输出流关闭写入len字节。一般的合约write(b, off, len),一些在数组b中的字节写入,以便输出流;元素b[off]是写入的第一个字节和b[off+len-1]是写的这个操作的最后一个字节。OutputStream的write方法调用的每个被写出其
【IO】InputStream的read(byte[] b)方法
1、从运行结果可以看出: (1)InputStream中的read(byte[] b)方法是:从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。以整数形式返回实际读取的字节数。 (2)read方法读取某的一个字节可以转换为相应的ASSIC码字符,因此ASSIC码为13对应的是回车('\r')、10对应的是换行('\n'),这个我们可以从运行结果看出。 (3)windows中的换行符是\r\n,linux/unix下的换行符是\n。其中:回车符:\r=0x0d (13) return #回车
IO流里的 read(),read(byte[]),read(byte[],int off,int len)以及write
教你完全理解IO流里的 read(),read(byte[]),read(byte[],int off,int len)以及write 原创 2016年07月01日 15:43:43 4540 1 7 好的我们先来讲它们的作用,然后再用代码来实现给大家看 read(): 1.从读取流读取的是一个一个字节
write(byte b[], int off, int len)详解
b 这一次写的数据 off 从b的第off个开始写