io-Inputstream+OutputStream 拷贝文件
使用Inputstream,OutputStream ,对文件进行拷贝:
1,这两个输入输出流拷贝只是拷贝单个文件,不包含文件夹;FileInputStream + FileOutputStream完成文件的拷贝。拷贝的过程应该是一边读,一边写。,文件类型随意,什么样的文件都能拷贝(图片、声音、world文档,.txt文档等等)。
2、输出流new对象之后一定要刷新: fos.flush()
3、输入流,输出流,在finally语句块中关闭时,要分开关闭
4、最核心的:一边读,一边写
byte[] bytes = new byte[1024 * 1024]; // 1MB(一次最多拷贝1MB。)
int readCount = 0;
while((readCount = fis.read(bytes)) != -1) {
fos.write(bytes, 0, readCount);
}
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; /** * IO流拷贝单个文件(不包含目录)
使用FileInputStream + FileOutputStream完成文件的拷贝。
拷贝的过程应该是一边读,一边写。
使用以上的字节流拷贝文件的时候,文件类型随意,万能的。什么样的文件都能拷贝。 */ public class CopyTest01 { public static void main(String[] args) {
//创建一个输入流 FileInputStream fis = null;
//创建一个输出流 FileOutputStream fos = null; try { // 创建一个输入流对象 fis = new FileInputStream("E:\\javaseNote\\单例设计模式.md"); // 创建一个输出流对象 fos = new FileOutputStream("D:单例设计模式.md"); // 最核心的:一边读,一边写 byte[] bytes = new byte[1024 * 1024]; // 1MB(一次最多拷贝1MB。) int readCount = 0; while((readCount = fis.read(bytes)) != -1) { fos.write(bytes, 0, readCount); } // 刷新,输出流最后要刷新 fos.flush(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally { // 分开try,不要一起try。 // 一起try的时候,其中一个出现异常,可能会影响到另一个流的关闭。 try { fis.close(); } catch (IOException e) { e.printStackTrace(); } try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix