`

用javaI/O流来拷贝目录及目录中所有文件

阅读更多
package org.tarena.day02;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class BufferedInputStreamDemo {
static String path;
public static void copyDir(File fromDir, File toDir) throws Exception {
	toDir.mkdir();// 目标目录创建出来;
	File[] files = fromDir.listFiles();
	if (files == null)return;
	for (File file : files) {
	path = toDir.getPath() + "/" + file.getName();
	//创建目标文件或目录的路径;
	if (file.isDirectory()) {
	    copyDir(file, new File(path));//递归创建源目录中与目标位置相应的目录;
	} else {
	    BufferedInputStream bis = new BufferedInputStream(
		new FileInputStream(file));
		System.out.println(path);
		BufferedOutputStream bos = new BufferedOutputStream(
		new FileOutputStream(new File(path)));
		byte[] buf = new byte[1024];
		while (bis.read(buf) != -1) {
//注意一点要把读到的内容放到buf数组中,否则bos.write(buf)是取不到字符值的;
		    bos.write(buf);
		}
		    bis.close();
		    bos.close();
		}
	}
}

public static void main(String[] args) {
	File one = new File("/home/soft22/Desktop/232");//源文件;
	File two = new File("/home/soft22/Desktop/aaa");//目标文件;
	try {
		copyDir(one, two);
		System.out.println("文件copy成功!!!");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}


分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    java i/0习题

    在Java I/O中,我们使用流(Stream)的概念来处理数据,流是数据传输的通道。本套习题旨在帮助你深入理解和熟练掌握Java I/O的各种操作。 一、输入流(Input Stream) 1. 字节流:InputStream类是所有字节输入流的...

    Java I/O 操作及优化详细介绍

    Java I/O提供了多种不同的流类型,包括字节流、字符流、对象流、缓冲流、转换流等,以及特定用途的如文件流、网络流等。这些流之间可以通过装饰器模式组合,以实现更高效、功能更丰富的数据处理。 Java I/O操作存在...

    Java中I/O流对文件进行复制粘贴及可能会出现的问题

    需求:将E:\电脑桌面壁纸\MisakaMikoto.jpg图片文件复制到D:\某科学的超电磁炮 目录下 public class Test { public static void main(String[] args) throws IOException { //创建字节输入流对象,关联数据源文件...

    Java无敌 基于网络的文件拷贝

    在Java编程中,实现基于网络的文件拷贝是一项常见的任务,尤其在分布式系统或云存储应用中。这个项目的关键在于高效、稳定地传输大量数据。根据提供的标题和描述,我们来详细探讨一下如何使用Java来实现这样的功能。...

    java 局域网拷贝文件

    要实现局域网文件拷贝,我们需要使用Java的I/O流(InputStream和OutputStream)以及网络套接字(Socket)或NIO(New IO)的FileChannel。以下是一个简单的步骤概述: 1. **确定目标路径**:获取局域网内目标文件的...

    拷贝文件及文件夹(封装工具类)

    本篇将详细介绍如何创建一个用于拷贝文件及文件夹的工具类,并探讨其背后的Java I/O流操作。 首先,我们要理解Java中的I/O流。I/O(Input/Output)流是Java提供的一种处理输入输出数据的方式,它允许我们读取和写入...

    拷贝文件copy

    1. **使用Java I/O流拷贝文件** 在早期的Java版本中,我们通常使用InputStream和OutputStream进行文件拷贝。首先,我们需要创建一个FileInputStream来读取源文件,然后创建一个FileOutputStream来写入目标文件。...

    线程池拷贝显示树状图.zip

    在Java中,`java.io.File`类可以用来操作文件和目录,`listFiles()`方法可以获取指定目录下的所有文件和子目录。要构建树状图,可以采用递归方式,对于每个目录,递归调用自身来处理子目录,并使用图形界面(如Swing...

    java文件夹的拷贝

    在实际应用中,为了提高性能和错误处理,我们通常会添加多线程支持,同时复制多个文件,或者使用缓冲区以减少磁盘I/O次数。此外,我们还需要考虑一些异常情况,例如源目录不存在、目标目录已存在且不允许覆盖、权限...

    第12讲 Java有几种文件拷贝方式?哪一种最高效?1

    零拷贝技术是现代操作系统中提高I/O性能的一种策略,它减少了CPU在数据传输过程中参与的次数,使得数据可以直接在系统内核空间和硬件之间传输,降低了CPU负载。 Buffer在Java.NIO中扮演重要角色,分为Heap Buffer和...

    文件从sd卡某个目录复制到另一个目录

    这里我们将使用Java的I/O流进行文件复制。假设我们要复制的源文件路径为`sourceFilePath`,目标文件路径为`targetFilePath`,可以使用以下代码: ```java try { // 打开源文件输入流 FileInputStream fis = new ...

    黑马程序员_毕向东_Java基础视频教程第18天-13-IO流(拷贝文本文件).zip

    总的来说,通过学习这个Java基础视频教程,你将能够掌握如何使用IO流高效地复制文本文件,理解字节流与字符流的区别,以及如何有效地处理文件操作中的异常。这些知识不仅在日常开发中非常实用,也是深入学习Java高级...

    文件夹的拷贝.rar

    在Java编程语言中,文件和文件夹的拷贝是一个常见的任务,特别是...以上就是使用Java实现文件夹拷贝的关键知识点,包括传统I/O流和NIO的使用,以及递归处理和异常处理。在实际开发中,可以根据具体需求选择合适的方法。

    java基础--文件流管道.docx

    本文将深入探讨Java中的文件流管道以及传统的文件拷贝方法。 首先,我们要了解什么是文件流管道。在Java NIO(New IO)框架下,文件流管道(Pipe)是一种用于在两个线程之间传递数据的机制,它允许一个线程写入数据...

    android direct IO.rar

    在本例中,我们可以创建一个JNI方法,该方法使用系统提供的`O_DIRECT`标志来打开和操作文件,以启用Direct IO。 `O_DIRECT`是Linux系统调用`open()`的一个标志,用于请求使用直接I/O模式。但是,使用Direct IO并不...

    Java文件管理系统源代码

    在文件管理系统中,拷贝文件涉及到输入流(InputStream)和输出流(OutputStream)。通过创建这两个流对象,可以从源文件读取数据并将其写入目标文件。例如,`FileInputStream` 和 `FileOutputStream` 类用于直接...

    JAVA实现GUI文件管理器

    3、实现文件拷贝和文件夹拷贝(文件夹拷贝指深度拷贝,包括所有子目录和文件)。 4、实现指定文件的加密和解密。 5、实现指定文件和文件夹的压缩。 6、实现压缩文件的解压。 7、文件管理器具有图形界面。 建议使用...

    java实现文件拷贝的七种方式

    使用字节流实现文件拷贝是 Java 中最基本的文件拷贝方式。字节流是 Java 中的一种基本输入/输出流,用于读取和写入文件的二进制数据。通过字节流,可以实现文件的快速拷贝。 在上面的代码中,我们使用了 `...

    java中GUI界面运用Swing组件进行文件以及图片的拷贝

    接下来,为了实现文件拷贝,你需要使用Java的I/O流。FileInputStream用于读取源文件,FileOutputStream用于写入目标文件。注意,对于二进制文件如图片,必须使用二进制流,而不是文本流。以下是一个简单的文件复制...

Global site tag (gtag.js) - Google Analytics