java的一段程序

来源:百度知道 编辑:UC知道 时间:2024/06/18 18:09:03
public static void main(String[] args) throws FileNotFoundException {
InputStream is=new FileInputStream("d:\\file1.txt");
byte[] bytes=new byte[1024];
int len=0;
try {
len=is.read(bytes);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("byte sizes="+len);
for (int i = 0; i < len; i++) {
System.out.println("char ="+(char)bytes[i]);
}
这段程序中“byte[] bytes=new byte[1024];”是干什么用的?
还有为什么要定义一个“int len=0;”,有什么用?

bytes用来做缓冲。int len=0声明了变量len,其初始值为0,它是用来当循环变量,以输出缓冲区的所有字符。

bytes是定义的一个文件读入缓冲器,因为有的文件比较大,不可能一下子全读入内存,所以必须用一个缓冲器来读一部分文件,然后系统再从缓冲器中读出数据进行打印,然后缓冲器又可以继续读文件的下一个部分,重复这样的操作直到文件读完。不过我看你这里的代码好像没有读完文件,只读了1024个字节,打印后程序就结束了。len是用来保存从文件中读出字节的数目,比如有些文件很小很小,还不足1024,这里假设是100,最后读完文件len的值就等于100。如果文件的大小大于1024个字节,但由于缓冲器只有1024的存储量,len的值最多就只能等于1024。这样解释应该明白了吧。。

byte[] bytes=new byte[1024]
是每次读取1024字节大小的数据到bytes数组中

byte[] bytes=new byte[1024]
这里是用来存储那个文件流读取的数据内容
len = 0
这个是得到这个文件的大小。

定义byte数组的长度,用来存储数据的;