计算机进行数据存储的基本单位是字节。
所以Java中字节流应运而生了。
private static void copyFileByByte() {
try (FileInputStream fileInputStream = new FileInputStream("D:\\java\\io\\dir1\\a.mp4");
FileOutputStream fileOutputStream = new FileOutputStream("D:\\java\\io\\dir2\\a.mp4");) {
int len = 0;
while ((len = fileInputStream.read()) != -1) {
fileOutputStream.write(len);
}
} catch (IOException e) {
e.printStackTrace();
}
}
private static void copyFileByByteArray() {
try (FileInputStream fileInputStream = new FileInputStream("D:\\java\\io\\dir1\\a.mp4");
FileOutputStream fileOutputStream = new FileOutputStream("D:\\java\\io\\dir2\\a.mp4");) {
byte[] bytes = new byte[1024];
int len;
while ((len = fileInputStream.read(bytes)) != -1) {
fileOutputStream.write(len);
}
} catch (IOException e) {
e.printStackTrace();
}
// finally {
// fileOutputStream.close();
// fileInputStream.close();
// }
}
JDK1.7之后异常处理有一个新特性,在try的后边可以增加一个(),在括号中可以定义流对象, 那么这个流对象的作用域就在try中有效
try中的代码执行完毕,会自动把流对象释放,不用写finally。