一、明确源和目的。源为输入流,包含inputstream,reader。目的为输出流,包含Outputstream,writer。
二、分别确定操作源文件和目的文件是否为纯文本。如果不是则选取字节流:类名以stream结尾。如果是则选取字符流操作:类名以reader和writer结尾。如果源文件和目的文件文件类型不同则需要进行“流转化”。
三、当明确了以上两步之后,选择合适的类进行操作,在这里选择的标准就是判断是否需要缓冲区。
例如:如果需要将一个图片文件pic.gif复制到另一个文件pic_copy.gif中,则思路如下:
1、 明确源:pic.gif为源,pic_copy.gif为目的。
2、 判断源是否为纯文本:pic.gif不是纯文本,所以源选择FileInputstream。目的也不是纯文本选择FileOutputstream。
3、 因为文件可能较大所以需要提高效率。因此最终确定源使用BufferedInputStream。目的使用BufferedOutputStream。
即源:BufferedInputStream bui= new BufferedInputStream(new FileInputstream(“pic.gif”))
目的:BufferedOutputStream buo = new BufferedOutputStream(new FileOutputStream(“pic_copy.gif”))
4、调用合适的方法进行操作。