欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java File文件的Copy

程序员文章站 2022-06-10 11:24:52
...

文件的拷贝

  1. 获取目标文件file,用字节输入流获取目标文件内容.
  2. 根据要拷贝到的文件路径,先创建拷贝文件newFile(File 创建).
  3. 构建拷贝到文件file的文件输出流,
  4. 根据file输入流获取的内容,通过newFile的文件输出流,写入到newFile中
  5. 分别关闭file 、newFile 的文件输入流、文件输出流

代码实现

		BufferedInputStream bufferedInputStream = null;
		BufferedOutputStream bufferedOutputStream = null;
		try {
			InputStream fileInputStream = new FileInputStream(file);//构建文件输入流
			bufferedInputStream = new BufferedInputStream(fileInputStream);//构建文件输入流缓存
			OutputStream fileOutputStream = new FileOutputStream(newFile);//构建文件输出流
			bufferedOutputStream = new BufferedOutputStream(fileOutputStream);//构建文件输出流缓存
			byte[] bytes = new byte[1024];/构建字节数组
			int len = -1;
			while ((len = bufferedInputStream.read(bytes)) != -1) {//while语句通过文件输入流读取数据,读取不到数据时: bufferedInputStream.read(bytes) = -1
				bufferedOutputStream.write(bytes, 0, len);//通过文件输出流,把从文件输入流获取到的数据bytes写入到newFile中
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {//当catch代码块中的代码程序执行完成后,执行该finally代码块
			if (bufferedInputStream != null)
				try {
					bufferedInputStream.close();//关闭文件输入流缓存
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			if (bufferedOutputStream != null)
				try {
					bufferedOutputStream.close();//关闭文件输出流缓存
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
		}