package file;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.nio.channels.FileChannel;
import java.util.ArrayList;
import java.util.List;
public class NewIo {
public static void main(String[] args) throws IOException {
List<String> fileList = listFiles("C:\\业务数据");
String destFile = "C:\\业务数据\\data.txt";
for (String file : fileList) {
copyFile(file, destFile);
}
}
public static List<String> listFiles(String path) {
File file = new File(path);
List<String> list = new ArrayList<String>();
File[] files = file.listFiles();
for (File f : files) {
String absolutePath = f.getAbsolutePath();
if (absolutePath.endsWith(".xml")) {
list.add(f.getAbsolutePath());
}
}
return list;
}
/**
* 新IO
*
* @param sourceFile
* @param destFile
* @throws IOException
*/
public static void copyFileNew(File sourceFile, File destFile) throws IOException {
if (!destFile.exists()) {
destFile.createNewFile();
}
FileChannel source = null;
FileChannel destination = null;
try {
source = new FileInputStream(sourceFile).getChannel();
destination = new FileOutputStream(destFile).getChannel();
destination.transferFrom(source, 0, source.size());
System.out.println(source.size());
} finally {
if (source != null) {
source.close();
}
if (destination != null) {
destination.close();
}
}
}
public static void copyFileOld(File source, File dest) throws IOException {
if (!dest.exists()) {
dest.createNewFile();
}
InputStream in = null;
OutputStream out = null;
try {
in = new FileInputStream(source);
out = new FileOutputStream(dest, true);
// Transfer bytes from in to out
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
} finally {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
}
}
public static void copyFile(String fileName, String dest) throws IOException {
BufferedReader bufferedReader = null;
BufferedWriter writer = null;
try {
bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(fileName)));
writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(dest, true)));
writer.write(fileName.substring(fileName.lastIndexOf("\\") + 1, fileName.lastIndexOf("-")) + ":");
writer.newLine();
String content = "";
while ((content = bufferedReader.readLine()) != null) {
if (content.trim().matches("<!-- [a-zA-Z]+ -->")) {//正则表达式过滤
System.out.println(content.trim());
writer.write(content.trim());
writer.newLine();
}
}
} catch (FileNotFoundException e) {
throw new RuntimeException("文件路径不正确", e);
} catch (IOException e) {
throw new RuntimeException("读取文件出错", e);
} finally {
if (writer != null) {
writer.close();
}
if (bufferedReader != null) {
bufferedReader.close();
}
}
}
}
分享到:
相关推荐
本篇文章将详细讲解如何使用Java的IO流进行文件复制。 一、基本概念 IO流是Java中处理输入输出的基础,分为字节流和字符流两大类。字节流处理原始的8位字节数据,如 FileInputStream 和 FileOutputStream;字符流...
总的来说,Java通过IO流提供了多种文件复制的方法,开发者可以根据实际需求选择合适的方式。无论是基础的字节流还是高效的NIO,它们都是Java处理文件操作的重要工具。在实际开发中,理解并掌握这些技术,对于提升...
通过C语言用标准IO实现文件打复制;通过C语言用标准IO实现文件打复制;通过C语言用标准IO实现文件打复制;通过C语言用标准IO实现文件打复制;通过C语言用标准IO实现文件打复制;通过C语言用标准IO实现文件打复制;
下面我们将详细探讨这些流在文本文件复制中的应用。 首先,字节流是Java中最基础的流类型,分为InputStream和OutputStream两个类,它们分别用于处理数据的输入和输出。InputStream用于读取原始的字节数据,而...
通过“io流复制文本文件图解”,我们不仅可以直观地理解文本文件复制的过程,还能深入掌握Java中字符流的使用方法。这对于任何从事Java开发的人来说都是一个重要的技能点。无论是日常的文件操作,还是复杂的数据处理...
本篇文章将详细讲解如何使用Java的IO流进行文件复制,以及如何实现整个文件夹的复制,并检查复制是否成功。 1. 单个文件复制: 在Java中,我们可以使用`java.io`包中的`FileInputStream`和`FileOutputStream`类来...
在这个案例中,我们讨论的主题是如何利用Java的IO流实现文件复制,特别是使用字节流进行操作。字节流是Java IO流的一种类型,它可以处理任何类型的原始数据,因为所有数据在计算机内部最终都会被转化为字节序列。 ...
基于java的开发源码-二进制IO类与文件复制操作实例.zip 基于java的开发源码-二进制IO类与文件复制操作实例.zip 基于java的开发源码-二进制IO类与文件复制操作实例.zip 基于java的开发源码-二进制IO类与文件复制操作...
标准io流复制文件
其实用IO包复制文件很简单,学过这个的一般都能理解,我上传主要是为了获得积分,供自己下载,希望大家能支持!!!!
例如,文件IO可以用来实现文件的复制、剪切、粘贴等操作。 在文件IO中,fopen函数是打开文件的关键函数。它可以将文件打开以便后续的读写操作。fopen函数的原型是: ``` FILE *fopen(const char *path, const char ...
本主题将深入探讨如何使用Java实现文件复制、File类的文件读取和写入,以及I/O流的读取与写入。下面将详细阐述这些知识点。 1. **Java文件复制** 文件复制通常涉及读取源文件内容并将其写入目标文件。在Java中,...
Commons IO提供了一些底层的IO操作支持,如读写文件、复制流等,而Commons FileUpload则专注于解析上传请求中的文件数据。 标签"fileupload commons io 上传文件"进一步强调了这两个库在文件上传中的关键作用。其中...
- 调用 `fwrite` 后,数据从 Application Buffer 复制到 C 库标准 IO 缓冲区 (CLib Buffer)。 - 当 `fclose` 被调用时,数据才会被刷新到磁盘上。此外,可以使用 `fflush` 将数据从 CLib Buffer 写入 Page Cache,但...
在Java编程语言中,文件复制是一项常见的任务,主要通过IO(Input/Output)流来实现。IO流提供了从一个源读取数据并将其写入另一个目的地的机制。在这个主题中,我们将深入探讨如何使用Java的IO流进行文件复制,重点...
Java IO文件操作类与复制文件实例,有关文本编辑、FileWriter文件写入、FileReade文件读娶DataStream文件数据流、BufferedReader文件暂存器、FileViewer文件浏览器、复制文件Copy等方面的操作要领,仅供学习参考。
1. 文件复制与移动:os模块提供了copy()和rename()函数,分别用于复制和移动文件。 2. 文件切片:有时需要读取大文件的部分内容,可以使用mmap模块实现内存映射,将文件的一部分映射到内存中。 3. 文件和流:在...
- 由第三方研发的工具类 - 要使用commons-io工具包,就需要先从第三方下载该工具包 - 在当前项目工程下,导入commons-io工具包(借鉴之前使用过的logback) ...commons-io可以简化IO复制文件的操作
java io file 文件复制,可直接运行。java io file 文件复制,可直接运行。
在Linux操作系统中,I/O(Input/Output)操作是计算机与外部设备交互的关键部分,尤其在处理大量数据时,如文件操作。本话题主要探讨在Linux环境下,针对文件逆序操作的不同I/O策略的性能比较。我们将分析四种不同的...