`
lichaozhangobj
  • 浏览: 100896 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

新io与旧io文件复制

    博客分类:
  • java
阅读更多
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();
			}
		}
	}

}

 

分享到:
评论

相关推荐

    io操作复制文件

    本篇文章将详细讲解如何使用Java的IO流进行文件复制。 一、基本概念 IO流是Java中处理输入输出的基础,分为字节流和字符流两大类。字节流处理原始的8位字节数据,如 FileInputStream 和 FileOutputStream;字符流...

    java 使用IO流实现文件的复制

    总的来说,Java通过IO流提供了多种文件复制的方法,开发者可以根据实际需求选择合适的方式。无论是基础的字节流还是高效的NIO,它们都是Java处理文件操作的重要工具。在实际开发中,理解并掌握这些技术,对于提升...

    标准IO实现文件的复制

    通过C语言用标准IO实现文件打复制;通过C语言用标准IO实现文件打复制;通过C语言用标准IO实现文件打复制;通过C语言用标准IO实现文件打复制;通过C语言用标准IO实现文件打复制;通过C语言用标准IO实现文件打复制;

    IO流三种流方式的文本文件的复制

    下面我们将详细探讨这些流在文本文件复制中的应用。 首先,字节流是Java中最基础的流类型,分为InputStream和OutputStream两个类,它们分别用于处理数据的输入和输出。InputStream用于读取原始的字节数据,而...

    io流复制文本文件图解

    通过“io流复制文本文件图解”,我们不仅可以直观地理解文本文件复制的过程,还能深入掌握Java中字符流的使用方法。这对于任何从事Java开发的人来说都是一个重要的技能点。无论是日常的文件操作,还是复杂的数据处理...

    JAVA 的IO流的文件复制

    本篇文章将详细讲解如何使用Java的IO流进行文件复制,以及如何实现整个文件夹的复制,并检查复制是否成功。 1. 单个文件复制: 在Java中,我们可以使用`java.io`包中的`FileInputStream`和`FileOutputStream`类来...

    java的IO流实现文件复制20190726.zip

    在这个案例中,我们讨论的主题是如何利用Java的IO流实现文件复制,特别是使用字节流进行操作。字节流是Java IO流的一种类型,它可以处理任何类型的原始数据,因为所有数据在计算机内部最终都会被转化为字节序列。 ...

    基于java的开发源码-二进制IO类与文件复制操作实例.zip

    基于java的开发源码-二进制IO类与文件复制操作实例.zip 基于java的开发源码-二进制IO类与文件复制操作实例.zip 基于java的开发源码-二进制IO类与文件复制操作实例.zip 基于java的开发源码-二进制IO类与文件复制操作...

    标准io流复制文件

    标准io流复制文件

    使用IO包复制文件

    其实用IO包复制文件很简单,学过这个的一般都能理解,我上传主要是为了获得积分,供自己下载,希望大家能支持!!!!

    文件IO 文件操作 操作文件 标准IO和文件IO

    例如,文件IO可以用来实现文件的复制、剪切、粘贴等操作。 在文件IO中,fopen函数是打开文件的关键函数。它可以将文件打开以便后续的读写操作。fopen函数的原型是: ``` FILE *fopen(const char *path, const char ...

    Java实现文件复制,File文件读取,写入,IO流的读取写入

    本主题将深入探讨如何使用Java实现文件复制、File类的文件读取和写入,以及I/O流的读取与写入。下面将详细阐述这些知识点。 1. **Java文件复制** 文件复制通常涉及读取源文件内容并将其写入目标文件。在Java中,...

    fileupload commons-io上传文件

    Commons IO提供了一些底层的IO操作支持,如读写文件、复制流等,而Commons FileUpload则专注于解析上传请求中的文件数据。 标签"fileupload commons io 上传文件"进一步强调了这两个库在文件上传中的关键作用。其中...

    漫谈linux文件IO

    - 调用 `fwrite` 后,数据从 Application Buffer 复制到 C 库标准 IO 缓冲区 (CLib Buffer)。 - 当 `fclose` 被调用时,数据才会被刷新到磁盘上。此外,可以使用 `fflush` 将数据从 CLib Buffer 写入 Page Cache,但...

    java 复制文件 io流操作

    在Java编程语言中,文件复制是一项常见的任务,主要通过IO(Input/Output)流来实现。IO流提供了从一个源读取数据并将其写入另一个目的地的机制。在这个主题中,我们将深入探讨如何使用Java的IO流进行文件复制,重点...

    Java IO文件操作类与复制文件实例.rar

    Java IO文件操作类与复制文件实例,有关文本编辑、FileWriter文件写入、FileReade文件读娶DataStream文件数据流、BufferedReader文件暂存器、FileViewer文件浏览器、复制文件Copy等方面的操作要领,仅供学习参考。

    文件IO.zip

    1. 文件复制与移动:os模块提供了copy()和rename()函数,分别用于复制和移动文件。 2. 文件切片:有时需要读取大文件的部分内容,可以使用mmap模块实现内存映射,将文件的一部分映射到内存中。 3. 文件和流:在...

    java的IO流的工具包:作用:复制单个文件(文件对文件)/ 复制目录或文件(多个文件)

    - 由第三方研发的工具类 - 要使用commons-io工具包,就需要先从第三方下载该工具包 - 在当前项目工程下,导入commons-io工具包(借鉴之前使用过的logback) ...commons-io可以简化IO复制文件的操作

    java io file 文件复制

    java io file 文件复制,可直接运行。java io file 文件复制,可直接运行。

    linux IO 系统的开销比较(文件逆序)

    在Linux操作系统中,I/O(Input/Output)操作是计算机与外部设备交互的关键部分,尤其在处理大量数据时,如文件操作。本话题主要探讨在Linux环境下,针对文件逆序操作的不同I/O策略的性能比较。我们将分析四种不同的...

Global site tag (gtag.js) - Google Analytics