以前对于io操作,总是马马虎虎,弄的不是很清楚,总结下:
InputStream --> 字节流 byte数组 byte[]bytes = new byte[1024] read方法
Reader ---> 字符流 char数组 char[] c = new byte[1024] read方法 ,如果是BufferedReader,带缓冲的字符流,就是readLine()方法
BufferedInputStream -->字节流 byte数组 byte[] bytes = new byte[1024] read方法
while(len = is.read(bytes) != -1)
{
.......
}
is.read(bytes)中,读取byte数组,比如 byte[] bytes = new byte[1024]。如果源文件有2050个字节,那么前两次读取的时候len的值都是1024。第三次len的值是2(2050-1024*2)。