前言
IOStream是InputStream和OutputStream的简称,这两个基类下面包含着很多子类,如图(output与input对应):
对于这几个子类的介绍,详情百度百科。
in和out是相对于内存来说的,接下来用一个小例子对它加深理解。
实例
public static void main(String[] args) {
File file = new File("G:\\测试.txt");
File filenew = new File("G:\\new测试.txt");
int size = (int)file.length();
byte[] bytes=new byte[size];
try {
InputStream in = new FileInputStream(file);
try {
in.read(bytes);
} catch (IOException e) {
e.printStackTrace();
}
OutputStream out = new FileOutputStream(filenew);
try {
out.write(bytes);
} catch (IOException e) {
e.printStackTrace();
}
try {
in.close();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
System.out.print("完成");
}
这是一个最简单的IO流复制文件的操作,大概意思就是,本地G盘下有一名为“测试”的txt文件,inputStream将其文件流读入内存中,并新建一空文件“new测试.txt”,使用OutputStream从内容中读出流并输入到该文件中,此时,在本地G盘下会生成“new测试.txt”,内容与“测试.txt”相同。
实际的使用IO流操作大文件时,一般会把他们读出的流放入缓存中,可显著加快读取速度。在此不做演示。
总结
IO流在实际中的使用非常普遍,如上传下载文件,读取、写文件等。