关于java中的输入输出流的问题,新手求教,谢谢

import java.io.*;
public class Filetest3 {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    File file=new File("word.txt");
    try{
        FileOutputStream out=new FileOutputStream(file);
        byte mybyte[]="我有一只小毛驴,我从来也不骑。".getBytes();
        out.write(mybyte);
        out.close();
    }catch(Exception e){
        e.printStackTrace();
    }
    try{
        FileInputStream in=new FileInputStream(file);
        byte[] mybyte2=new byte[1024];
        int len=in.read(mybyte2);
        System.out.println("文件中的信息是 "+new String(mybyte2,0,len));
    }catch(Exception e){
        e.printStackTrace();
    }
}

}
非常不明白byte[] mybyte2=new byte[1024];这句是干吗的,1024是怎么来的?新手求教,谢谢!

1024就是大小,int len=in.read(mybyte2);这句就是一次读取1024个字节的数据,如果你的文件不是一句话,而是更大的文件,那么就需要读取多次,需要遍历
这样的好处是读取速度比较快。

这个是开一个缓冲区,1024随便写的。

就你的程序来说,byte[] mybyte2=new byte[102];也可以运行,因为你的文件内容很短
但是byte[] mybyte2=new byte[10];肯定不行

1024个byte是1MB,用来存储内存读取的字节数的,因为计算机2的10次方,是1024,这样可能存储起来比较方便。

1024就是数组的大小,自己随便写,只要够用就行了。

byte[] mybyte2=new byte[1024];定义一个1024字节大小的数组,作为缓冲区

1kb=2^10b=1024b

补充:
8b=1B//8位等于一字节(即 00000000)
1kB=1024B//1024字节等于1千字节
1M=1024kB//1024千字节等于一兆字节
1G=1024M//1024兆字节等于一吉字节
1TB=1024G//1024吉字节等于一太字节

意思是定义一个缓冲区,大小为1024个字节,即1KB

随便写的,如果读较大的文件,一般写4096,因为4K刚好是内存的一个页,听说效率会高一些

public static void main(String[] args) throws Exception {
    //使用字节输入流和字节输出流进行文件复制
    InputStream is=new FileInputStream("E:/开发工具/myeclipse-8.6.1-win32.exe");

    //创建字节输出流
    OutputStream os=new FileOutputStream("e:/a.exe");
    //每次读取1kb
    byte[] b=new byte[1024];

    int len=is.read(b);

    while(len!=-1){
        //将刚读取的1kb数据写出
        os.write(b, 0, len);
        //继续读取下一kb
        len=is.read(b);
    }

    //关流
    os.close();
    is.close();


}