IO流
对于输入流而言,数据源就像水箱,流(stream)就像水管中流动着的水流,程序就是我们最终的用户。我们通过流(A Stream)将数据源(Source)中的数据(information)输送到程序(Program)中。
对于输出流而言,目标数据源就是目的地(dest),我们通过流(A Stream)将程序(Program)中的数据(information)输送到目的数据源(dest)中。
图10-2 流与源数据源和目标数据源之间的关系
输入/输出流的划分是相对程序而言的,并不是相对数据源。
理解:
输入流 = 读
输出流 = 写
如果是文本文件通常使用字符流,而像视频,图片,音频等文件都是二进制数据使用字节流。当然文本文件也可以使用字节流来操作,字节流更通用。
注:如果只是复制纯文本文件不做显示操作,哪个流都可以,如果要显示纯文本就用字符流。
实验1:
下面是使用字节流复制文件,中文都是没问题的。所以文件复制字节流是万能的。
解读:FileInputStream.read()方法当没有参数时,返回的temp是字符 对应的ascii码值,可强转至char。
当有参数时,返回的是字节数,传入的数组是返回的数据。
//字节流复制所有文件都是没问题的(包括文本文件、中文)
实验2:
//字节流读取中文文本显示乱码
//字符流读取中文正常
//缓冲字节流复制
3.2缓冲字符流
//缓冲字符流
3.3缓存数组
//字节流复制文件加数组提高效率
//字符流读取文件加数组提高效率