`

[转载]nio 切割大文件

阅读更多

原文地址:http://www.blogjava.net/landon/archive/2010/12/20/341197.html

 

把一个大文件切割成多个小文件

 

package chow.nio;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

public class ReadLargeTextNio {
	/**
	 * 
	 * 用NIO读取大文本(1G以上)
	 * 
	 */
	public static void main(String... args) throws IOException {
		FileInputStream fin = new FileInputStream("C:/xmlDir2/20m.xml");
		FileChannel fcin = fin.getChannel();

		ByteBuffer buffer = ByteBuffer.allocate(1024 * 1024 * 1); //1M

		int count = 1;
		while (true) {
			buffer.clear();
			int flag = fcin.read(buffer);
			if (flag == -1) {
				break;
			}
			buffer.flip();
			FileOutputStream fout = new FileOutputStream("c:\\xmlDir2\\" + count
					+ ".xml");
			FileChannel fcout = fout.getChannel();
			fcout.write(buffer);
			System.out.println("create file " + count);
			count++;
		}
	}
}

 

 

 

 

 

 

分享到:
评论

相关推荐

    NIO处理大文件

    为了解决这个问题,Java引入了New Input/Output (NIO) 模型,它提供了非阻塞I/O操作,使得在处理大文件时更加高效。本文将深入探讨如何使用NIO处理大文件,并分析其背后的机制和优势。 1. NIO简介: NIO是Java 1.4...

    java nio 包读取超大数据文件

    相较于传统的Java IO,NIO具有更高的性能和更丰富的功能,尤其适合处理大文件或高并发场景。 #### 二、Java NIO关键组件 Java NIO的核心组件包括: - **Channels**:用于表示IO源或目标的一个连接点。 - **Buffers*...

    基于nio实现的多文件上传源码

    - 对大文件,可以考虑分块传输,每块单独处理,提高并发性。 - 添加错误处理和重试机制,确保文件上传的可靠性。 总的来说,基于NIO实现的多文件上传源码充分利用了NIO的非阻塞特性和并发能力,提高了文件传输效率...

    JAVA NIO 按行读取大文件支持 GB级别-修正版

    本类,是专门为了处理大文件,按行读取开发的类。 采用读文件的缓存 fbb 1024*5 行缓存 bb 256 字节 设计思想: 每次通过nio读取字节到 fbb中 然后对fbb自己中的内容进行行判断即 10 回车 13 行号 0 文件结束 ...

    JAVA NIO 按行读取大文件,支持 GB级别

    本类,是专门为了处理大文件,按行读取开发的类。 采用读文件的缓存 fbb 1024*5 行缓存 bb 256 字节 设计思想: 每次通过nio读取字节到 fbb中 然后对fbb自己中的内容进行行判断即 10 回车 13 行号 0 文件...

    NIO(byteBuffer)按行读取文件

    使用nio byteBuffer 实现按行读取文件(大文件) 在window/linux/macOS上均测试通过 对于中文乱码也已处理成功 完整注释,可随需求更改 有问题请邮件:mly610865580@126.com

    JAVA NIO 简单PFT 文件服务

    PFT(可能指的是文件传输或处理服务)在本场景中可能是通过JAVA NIO实现的一个功能模块,用于提供文件的上传、下载和列表展示服务。 文件服务是任何应用程序中不可或缺的部分,尤其是在Web环境中。在JAVA NIO中,...

    java nio 写文件

    但需要注意的是,内存映射文件可能会消耗大量内存,因此对于大文件操作要谨慎使用。 5. **选择器(Selectors)** 当需要同时处理多个文件写入操作时,Java NIO的选择器可以派上用场。选择器允许你在一个单独的线程...

    java NIO 写文件

    Java NIO(New IO)是Java 1.4版本引入的一个新模块,它提供了一种新的方式来处理I/O操作,相比传统...通过理解其核心组件和操作机制,开发者可以充分利用NIO来优化文件读写性能,尤其是在高并发和大文件处理的场景下。

    java nio 读文件

    在本篇文章中,我们将深入探讨Java NIO如何读取文件。 一、NIO的基本概念 1. 缓冲区(Buffer):NIO的核心组件,用于存储数据。Java提供了多种Buffer类,如ByteBuffer、CharBuffer、IntBuffer等,分别对应不同数据...

    文件分割器(IO and NIO 两个版本)

    开发者可以根据实际需求选择合适的方法,例如,如果需要处理大量的并发I/O请求,或者处理大文件,NIO可能是更好的选择;而对于简单的小规模文件操作,传统的IO可能更简洁直观。通过分析和实践这两个版本的代码,可以...

    Java用NIO读取文件示范

    简单的用Java的NIO读取文件的程序,给大家参考。

    Large-File-Processing-master_javanio_java大文件处理_

    综上所述,“Large-File-Processing-master_javanio_java大文件处理_”项目涵盖了Java NIO在大文件处理中的核心技术和最佳实践,是学习和研究Java高效处理大文件的宝贵资源。通过深入理解这些知识点,并结合项目中的...

    NIO复制文件

    1. **FileChannel**:`java.nio.channels.FileChannel`是用于读写文件的通道,可以从一个文件通道向另一个文件通道直接传输数据,避免了中间缓冲区的开销。在文件复制中,我们通常使用`transferTo()`和`transferFrom...

    nio.rar_FastCopyFile.java_NIO_UseFloatBuffer.java_java nio_文件锁

    这个文件很可能是一个示例程序,演示了如何使用Java NIO进行高效的大文件复制。在传统的Java I/O中,我们通常使用InputStream和OutputStream进行文件复制,而这种方式需要不断读写,造成大量的上下文切换,效率较低...

    java 文件切割合并

    文件切割的过程是将一个大文件分成多个小文件。以下是一个简单的步骤概述: 1. 打开原始文件:使用FileInputStream打开要切割的文件。 2. 设置切割大小:确定每个切割文件的大小。 3. 循环读取:使用read()方法从...

    java NIO实例

    4. **FileChannel**:用于文件的读写,可以实现大文件的高效传输,支持内存映射(Mmap)技术,能直接将文件映射到内存中。 5. **SocketChannel**:用于网络通信,可以建立TCP连接,进行非阻塞的读写。在`NIOServer....

    NIO与零拷贝_javanio_nio和零拷贝_

    Java NIO(New IO)是Java 1.4引入的一个新特性,它是对传统IO模型的重大改进,提供了更高效的数据处理方式。NIO的核心概念包括通道(Channels)、缓冲区(Buffers)和选择器(Selectors)。它允许多个输入/输出操作...

    java NIO.zip

    通过MappedByteBuffer类,可以直接在内存中对文件进行操作,提高大文件处理的性能。 7. **管道(Pipes)**: 管道用于在两个线程间创建单向数据通道,它们并不直接与任何外部资源关联,而是线程间的通信工具。 总...

Global site tag (gtag.js) - Google Analytics