//大文件的写入
public class LargeMappedFiles extends File{
public LargeMappedFiles(String pathname) {
super(pathname);
// TODO Auto-generated constructor stub
}
//写入大数据文件
public void writeData(String pathName,long num) throws IOException{
pathName=pathName+"\\bigdata.txt";
FileWriter fWriter=new FileWriter(pathName);
BufferedWriter bWriter=new BufferedWriter(fWriter);
for (int i = 0; i < num; i++) {
bWriter.write(new Random().nextInt(Integer.MAX_VALUE)+"\r\n");
}
bWriter.close();
}
//分割大数据文件
//分割大数据文件
public void dividFile(String pathName,String divideName,int count) throws IOException{
pathName=pathName+"\\bigdata.txt";
FileWriter fileWriter=null;
BufferedWriter bufferedWriter=null;
FileReader fileReader=new FileReader(pathName);
BufferedReader bufferedReader=new BufferedReader(fileReader);
LinkedList writeList=new LinkedList();
LinkedList bwlist=new LinkedList();
int j=0;
for (int i = 0; i < count; i++) {
fileWriter=new FileWriter(divideName+"\\"+i+".txt",false);
bufferedWriter=new BufferedWriter(fileWriter);
writeList.add(fileWriter);
bwlist.add(bufferedWriter);
}
while(bufferedReader.ready()){
int num=1;
for (Iterator iterator = bwlist.iterator(); iterator.hasNext();) {
BufferedWriter type = (BufferedWriter) iterator.next();
if(j==num)//判断轮到第几个文件流写入数据了
{
//写入数据,跳出,进行下一个文件流,下一个数据的写入
type.write(bufferedReader.readLine() + "\r\n");
break;
}
num++;
}
//判断是否到了最后一个文件流了
if (j >= count) {
j = 1;
} else
j++;
}
bufferedReader.close();
fileReader.close();
for (Iterator iterator = bwlist.iterator(); iterator.hasNext();) {
BufferedWriter object = (BufferedWriter) iterator.next();
object.close();
}
//遍历关闭所有子文件流
for (Iterator iterator = writeList.iterator(); iterator.hasNext();) {
FileWriter object = (FileWriter) iterator.next();
object.close();
}
}
}
public class Test {
/**
* @param args
*
*
*/
public static void main(String[] args) {
//小提醒:系统只能自动创建文件不能创建文件夹
//大数据文件
String pathName="D:\\123";
LargeMappedFiles lmf=new LargeMappedFiles(pathName);
//存入大数据
try {
/*
* 此处也可以改为
* lmf.writeData(pathName, 10000000);
*/
lmf.writeData(pathName, 1000000000000000000000L);
} catch (IOException e) {
e.printStackTrace();
}
//切割文件
String divideName = "D:"+"\\123";
lmf.dividFile(pathName, divideName,4);
}
}
分享到:
相关推荐
在Java编程语言中,分割大文件是一项常见的任务,特别是在处理大量数据或需要分批传输大文件的场景下。本文将详细介绍如何使用Java将一个大文件按照特定条件(如文件大小或生成日期)分割成多个小文件。 首先,我们...
文件写入路径是指将大文件分割成的小文件的写入路径。在 Java 中,可以使用 Java.IO 包中的 FileWriter 和 BufferedWriter 类来实现文件写入路径。 在上面的代码中,使用了 sqlitFilePath 变量来存储文件写入路径。
在某些情况下,我们可能需要对大文件进行分割,以便于传输、存储或处理。C#作为.NET框架的主要编程语言,提供了丰富的库和API来处理这种需求。本篇文章将深入探讨如何利用C#实现文件的分割和整合,以及涉及的核心...
### Python 实现大文件分割与合并 在日常的开发工作中,我们经常遇到处理大文件的情况。这些文件可能因为体积过大而难以一次性加载到内存中进行处理,或是由于网络传输限制,需要将其分割成较小的部分来分别传输。...
3. 共享与分发:在团队协作中,如果需要共享一个大文件,可以先将其分割,让每个成员下载一部分,然后再进行合并,这样可以减少单个人的下载压力。 三、操作流程 1. 下载与安装:首先,从可靠渠道获取名为"kdfg....
文件分割器是一种实用工具,主要用于将大文件分割成若干个小文件,便于存储、传输或管理。源码是指程序的原始代码,是程序员编写的、人类可读的指令集合,通过编译或解释后才能被计算机执行。在"文件分割器 源码"这...
文件分割是一种常见的计算机技术,它允许用户将一个大文件拆分为多个较小的文件,以便于存储、传输或管理。在标题和描述中提到的“文件分割源代码”是一段实现这个功能的编程代码,适用于处理任意大小的文件。这段源...
在Java编程语言中,文件合并与分割是常见的文件操作任务,尤其在大数据处理、日志分析和文件管理等场景中尤为关键。本程序提供了一个基础的实现,旨在帮助初学者理解这一过程,并通过MD5校验确保文件的完整性和未被...
在.NET编程环境中,文件的分割与合并是常见的操作,尤其在处理大文件时更为重要。大文件可能由于网络传输限制、存储空间分配或处理效率等原因需要进行分割,而在需要完整数据时,则需要将这些小文件合并回去。以下将...
4. **创建和写入分割文件**:每当达到预设的分割大小,程序会创建一个新的文件(通常带有连续的编号),然后使用fwrite函数将数据写入新文件。 5. **循环处理**:持续执行上述步骤,直到源文件的所有内容都被分割并...
2. **文件合并**:与分割相反,文件合并功能允许用户将之前分割的多个小文件重新组合成原始的大文件。这个过程涉及到读取每个小文件的内容,并按顺序写入到新的大文件中,确保数据的完整性和一致性。 3. **界面友好...
文件分割器通过将大文件拆分成多个小块,使得这些分块可以分别存储到有限的存储空间中,之后再在目标设备上重新组合成原始文件。这对于那些需要在不同设备间传输大文件的用户来说,无疑提供了极大的便利。 在本项目...
在IT领域,文件的分割与合并是常见的操作,尤其对于处理大文件时更为必要。本文将深入探讨这一主题,包括简单文件分割与合并、分割后自动合并以及多线程分割与合并三个实例。 首先,简单文件分割是将一个大文件分成...
按文件个数分割意味着将大文件划分为固定数量的小文件,而按文件大小分割则是根据用户设定的每个文件的最大大小来切割。这两种方法都涉及到对原始文件的逐块读取,使用FileStream的Read和Write方法将数据从源文件...
“大文本文件分割器”采用流式读取和写入的方式,避免一次性加载整个文件到内存中,有效降低了资源消耗,提高了处理速度。同时,考虑到可能出现的错误情况,工具还内置了异常处理机制,确保在遇到问题时能及时停止并...
文件分割是指将一个大文件拆分成多个小文件,而文件整合则是将这些小文件重新组合成原始的大文件。以下我们将详细讨论这两个概念以及它们在C#中的实现方法。 一、文件分割 文件分割通常用于将大文件分解为更易于...
通过以上知识点的运用,你可以构建出一个高效、稳定的C#文件合并与分割工具,无论是对几百MB还是几GB的大文件都能游刃有余地处理。在实际编程过程中,还可以根据具体需求进行功能扩展,如添加加密、解密功能,或者...
《大文本文件分割器源码解析与应用》 在信息技术领域,处理大数据量的文本文件是一项常见的任务。当文件过大,无法一次性加载到内存或需要分批处理时,就需要使用文本文件分割工具。本文将围绕“大文本文件分割器...
在文件分割中,我们需要使用`FileInputStream`来读取文件,然后用`FileOutputStream`将内容写入新的文件。`RandomAccessFile`可以用于定位文件中的特定位置进行读写,对于大文件分割非常实用。 2. **流的使用**:...
文件分割是其中的一个子领域,它涉及到将一个大文件拆分成多个小文件以便于传输、存储或处理。本篇将详细介绍如何使用Java实现文件的分割,并提供相关的代码示例。 首先,我们需要理解文件分割的基本原理。文件分割...