1.IO流通用步骤
IO流操作大致可以分为4个步骤:
- 创建源(输入源,输出源)
- 创建流(输入流,输出流)
- 操作流完成任务
- 关闭流
IO虽然系统庞大,却有其规律可循,下面就通过一个复制文件的例子来展示。
2 创建类
- 创建源:我们这里用函数来演示
- 创建流
- 流可能会创建失败,所以我们用try-catch语句捕获并且抛出异常
- 操作流
- 使用byte类型可以操作任意文件,简单的编码与解码操作
- 关闭流
- 我们将关闭流语句放入finally中,安全起见要判断他们不为null,并且需要使用try-catch语句捕获异常。
3.测试
我们找来一张图片,复制它为copy01.png
复制成功,打开看一下
3.最后附上源码
import java.io.*;
/
**
* 〈一句话功能简述〉<br>
* 〈复制文件〉
*
* @author long
* @create 19-3-28
* @since 1.0.0
*/
public class CopyFile {
public static void main(String[] args) {
copyfile("Firefox_wallpaper.png","copy01.png");
}
static void copyfile(String inputFile,String outputFile){
//创建源
File inputFrom = new File(inputFile);
File outputTo = new File(outputFile);
InputStream inputStream = null;
OutputStream outputStream = null;
try{
outputTo.createNewFile();//创建文件
//创建流
inputStream = new FileInputStream(inputFrom);
outputStream = new FileOutputStream(outputTo);
byte[] flush = new byte[1024];//字节缓冲数组,每次缓冲1k
int len = -1; //接收长度
while(-1!=(len = inputStream.read(flush))){//编码操作
outputStream.write(flush,0,len);//解码操作
}
} catch (IOException e) {
e.printStackTrace();
}finally {
//关闭流
//先开后关
if(null!=outputStream){
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(null!=inputStream){
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}