二.IO流的具体使用
- 从各种输入流到各种输出流
注:其实在各个不同的类型中,输入流到输出流的套路基本都一样。
那就拿最简单的FileOutputStream来举例子吧
从FileOutputStream到FileIntputStream其实就是复制一个文件的过程,将文件读取到FileIntputStream中,后输出到FileOutputStream也就是相当于输出到了硬盘的文件中。
我们可以以两个桶为例,一个桶为FileIntputStream,另一个桶为FileOutputStream,如果要把一个桶里的水转移到另一个桶中,我们首先需要一个水瓢,一次次的舀水才能完成我们的需求。
废话不多说,直接上代码:
public static void main(String[] args) throws IOException {
File fil1 = new File("D:/111.pdf");
File fil2 = new File("D:/222.pdf");
try (FileInputStream fi = new FileInputStream(fil1);
//一个叫输入流的桶,装满了一桶叫做D:/111.pdf文件的水
FileOutputStream fs = new FileOutputStream(fil2);
//一个叫输出流的空桶,但想装满叫做"D:/222.pdf"文件的水
) {
byte[] buf = new byte[521];
//叫做buf的水瓢
int len = -1;
//用来测量每次水瓢装了多少水
while((len = fi.read(buf)) != -1){
//一次次的用水瓢在输入流的桶里舀水,并用len测了舀了多少水,当len等于-1意味着水舀光了,该结束舀水了。
fs.write(buf, 0, len);
//一次次把水瓢里的水放到了输出流的桶里
}
fs.flush();
} catch (Exception e) {
}
}