java这句是什么意思,要深入的:out.write(b,0,len);

2024-12-03 21:26:40
推荐回答(2个)
回答1:

import java.io.*;
public class InOut
{
public static void main(String args[])
{

byte[] b = new byte[1024]; //1024保证数组的容量,没其它意思
int len = 0;
try//对于流来说,一般都会产生异常,所以要有异常处理程序
{
while( (len = System.in.read(b)) != -1 )//接收屏幕输入,存入b,同时读取的个数赋值给len
{
System.out.write(b,0,len); //屏幕输出b
}
}
catch(IOException e)
{
System.out.println(e);
}
}

}
写了一个完整的小程序没事自己试一下就知道了
1024只是为了保证b的容量,当然可以改啊,只要你不考虑对空间的使用率问题,改小了,可能丢失数据,改大了可能浪费空间,定个合适的就好了,具体怎么合适看需要啊

回答2:

实际上,这个数组的大小。仅仅表示一次从文件中读取出来的数据量。然后使用out.wirte(b,0,len) 对这么多的数据量进行输出,可以再使用out.flush()进行刷新。然后继续从文件中读取数据,直到整个文件被读取完毕。这个byte[]数组相当于一个搬砖的车而已。如果太大,则会对输出造成负担,如果太小则会导致从文件中读取的次数变多。