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/O中,我们使用流(Stream)的概念来处理数据,流是数据传输的通道。本套习题旨在帮助你深入理解和熟练掌握Java I/O的各种操作。 一、输入流(Input Stream) 1. 字节流:InputStream类是所有字节输入流的...
Java I/O提供了多种不同的流类型,包括字节流、字符流、对象流、缓冲流、转换流等,以及特定用途的如文件流、网络流等。这些流之间可以通过装饰器模式组合,以实现更高效、功能更丰富的数据处理。 Java I/O操作存在...
需求:将E:\电脑桌面壁纸\MisakaMikoto.jpg图片文件复制到D:\某科学的超电磁炮 目录下 public class Test { public static void main(String[] args) throws IOException { //创建字节输入流对象,关联数据源文件...
在Java编程中,实现基于网络的文件拷贝是一项常见的任务,尤其在分布式系统或云存储应用中。这个项目的关键在于高效、稳定地传输大量数据。根据提供的标题和描述,我们来详细探讨一下如何使用Java来实现这样的功能。...
要实现局域网文件拷贝,我们需要使用Java的I/O流(InputStream和OutputStream)以及网络套接字(Socket)或NIO(New IO)的FileChannel。以下是一个简单的步骤概述: 1. **确定目标路径**:获取局域网内目标文件的...
本篇将详细介绍如何创建一个用于拷贝文件及文件夹的工具类,并探讨其背后的Java I/O流操作。 首先,我们要理解Java中的I/O流。I/O(Input/Output)流是Java提供的一种处理输入输出数据的方式,它允许我们读取和写入...
1. **使用Java I/O流拷贝文件** 在早期的Java版本中,我们通常使用InputStream和OutputStream进行文件拷贝。首先,我们需要创建一个FileInputStream来读取源文件,然后创建一个FileOutputStream来写入目标文件。...
在Java中,`java.io.File`类可以用来操作文件和目录,`listFiles()`方法可以获取指定目录下的所有文件和子目录。要构建树状图,可以采用递归方式,对于每个目录,递归调用自身来处理子目录,并使用图形界面(如Swing...
在实际应用中,为了提高性能和错误处理,我们通常会添加多线程支持,同时复制多个文件,或者使用缓冲区以减少磁盘I/O次数。此外,我们还需要考虑一些异常情况,例如源目录不存在、目标目录已存在且不允许覆盖、权限...
零拷贝技术是现代操作系统中提高I/O性能的一种策略,它减少了CPU在数据传输过程中参与的次数,使得数据可以直接在系统内核空间和硬件之间传输,降低了CPU负载。 Buffer在Java.NIO中扮演重要角色,分为Heap Buffer和...
这里我们将使用Java的I/O流进行文件复制。假设我们要复制的源文件路径为`sourceFilePath`,目标文件路径为`targetFilePath`,可以使用以下代码: ```java try { // 打开源文件输入流 FileInputStream fis = new ...
总的来说,通过学习这个Java基础视频教程,你将能够掌握如何使用IO流高效地复制文本文件,理解字节流与字符流的区别,以及如何有效地处理文件操作中的异常。这些知识不仅在日常开发中非常实用,也是深入学习Java高级...
在Java编程语言中,文件和文件夹的拷贝是一个常见的任务,特别是...以上就是使用Java实现文件夹拷贝的关键知识点,包括传统I/O流和NIO的使用,以及递归处理和异常处理。在实际开发中,可以根据具体需求选择合适的方法。
本文将深入探讨Java中的文件流管道以及传统的文件拷贝方法。 首先,我们要了解什么是文件流管道。在Java NIO(New IO)框架下,文件流管道(Pipe)是一种用于在两个线程之间传递数据的机制,它允许一个线程写入数据...
在本例中,我们可以创建一个JNI方法,该方法使用系统提供的`O_DIRECT`标志来打开和操作文件,以启用Direct IO。 `O_DIRECT`是Linux系统调用`open()`的一个标志,用于请求使用直接I/O模式。但是,使用Direct IO并不...
在文件管理系统中,拷贝文件涉及到输入流(InputStream)和输出流(OutputStream)。通过创建这两个流对象,可以从源文件读取数据并将其写入目标文件。例如,`FileInputStream` 和 `FileOutputStream` 类用于直接...
3、实现文件拷贝和文件夹拷贝(文件夹拷贝指深度拷贝,包括所有子目录和文件)。 4、实现指定文件的加密和解密。 5、实现指定文件和文件夹的压缩。 6、实现压缩文件的解压。 7、文件管理器具有图形界面。 建议使用...
使用字节流实现文件拷贝是 Java 中最基本的文件拷贝方式。字节流是 Java 中的一种基本输入/输出流,用于读取和写入文件的二进制数据。通过字节流,可以实现文件的快速拷贝。 在上面的代码中,我们使用了 `...
接下来,为了实现文件拷贝,你需要使用Java的I/O流。FileInputStream用于读取源文件,FileOutputStream用于写入目标文件。注意,对于二进制文件如图片,必须使用二进制流,而不是文本流。以下是一个简单的文件复制...