java_IO之输入输出字节流copyFile
了解输入输出流
InputStream(二进制格式操作):抽象类,基于字节的输入操作,是所有输入流的父类。
定义了所有输入流都具有的共同特征。
OutputStream(二进制格式操作):抽象类,基于字节的输出操作。
是所有输出流的父类。定义了所有输出流都具有的共同特征。
字节流复制文件的类
FileInputSream:文件输入流(继承InputStream)。它通常用于对文件进行读取操作。
File:对指定目录的文件进行操作。FileoutputSream:文件输入流(继承OutputStream)。它通常用于对文件进行读取操作。
File:对指定目录的文件进行操作。File类虽然是在IO包下,但是并不继承自四大基础类。
实例:
import java.io.*;
public class Question1 {
public static void main(String[] args) {
// 1. 文件拷贝
// 在某一路径下创建txt文件
// 在相同路径下实现该txt文件的拷贝同时向复制完成文件追加“拷贝完成”字样。
File file = new File("./src/test01");
File filecopy = new File("testcopy.txt");
if (!filecopy.exists()){
try {
//如果不存在,则创建文件
filecopy.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
/*
InputStream(二进制格式操作):抽象类,基于字节的输入操作,是所有输入流的父类。
定义了所有输入流都具有的共同特征。
OutputStream(二进制格式操作):抽象类,基于字节的输出操作。
是所有输出流的父类。定义了所有输出流都具有的共同特征。
*/
InputStream is =null;
OutputStream os =null;
try {
// FileInputSream:文件输入流。它通常用于对文件进行读取操作
// File:对指定目录的文件进行操作。
// 类虽然是在IO包下,但是并不继承自四大基础类。
is = new FileInputStream(file);
os = new FileOutputStream(filecopy);
byte [] bytes = new byte[1024];
int num;
while ((num=is.read(bytes) )!=-1){
os.write(bytes);
os.flush();//刷新缓存
}
byte[] byte1 = "拷贝完成\n".getBytes();//字符串转换成字节组
os.write(byte1);
os.flush();
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
is.close();
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}