拷贝过程应该是一边读一边写,使用字节流拷贝文件时,文件类型任意
public class FileTest {
public static void main(String[] args) {
InputStream fis = null;
OutputStream fos = null;
try {
fis = new FileInputStream("要拷贝文件的地址");
fos = new FileOutputStream("要拷入存放文件的地址");
//一次最多读取bytes个直接,减少硬盘和内存的交互,提高执行效率
byte[] bytes = new byte[1024 * 1024];//1MB
int readCount = 0;
while ((readCount = fis.read(bytes)) != -1) { //-1没有要读入的东西了
fos.write(bytes, 0, readCount); //读多少写多少
}
//刷新,表示将通道中剩余的未输出的数据强行输出完
fos.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}