java 日期拆分合并,[java]拆分、合并文件

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

public class FileSplit

{

static final int partSize = 1000*1024;

public static void main(String[] args)

{

if (args.length < 1)

{

System.out.println("请输入文件名参数");

return;

}

String fileName = args[0];

File file = new File(fileName);

FileInputStream fis = null;

byte[] buf = new byte[1024];

int byteRead = 0, byteToWrite = 0;

try

{

fis = new FileInputStream(file);

long fileLength = file.length();

long fileCount = (fileLength % partSize == 0) ?

(fileLength / partSize) : (1 + fileLength / partSize);

long num = 1;

while (true)

{

String partFileName = fileName + ".part" + getPartNum(fileCount, num++);

FileOutputStream fos = new FileOutputStream(new File(partFileName));

if (byteToWrite < byteRead)

{

int byteLeft = byteRead - byteToWrite;

fos.write(buf, byteToWrite, byteLeft);

}

int byteWrited = 0;

while (byteWrited < partSize)

{

byteRead = fis.read(buf);

if (byteRead <= 0)

break;

byteToWrite = byteRead < (partSize - byteWrited) ? byteRead : (partSize - byteWrited);

fos.write(buf, 0, byteToWrite);

byteWrited += byteToWrite;

}

fos.close();

if (byteRead <= 0)

{

fis.close();

break;

}

}

}

catch (IOException e)

{

e.printStackTrace();

return;

}

}

static private String getPartNum(long total, long x)

{

String prefix = "";

while (Long.toString(total).length() > Long.toString(x).length())

{

total /= 10;

prefix += "0";

}

return prefix + Long.toString(x);

}

}

=========================================================================================

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.Collections;

import java.util.Vector;

//合并拆分的文件(fileName.part1~fileName.partx)

public class FileMerge

{

//如果拆分的文件放在目录dir下,被拆分的文件名称为test.exe,合并后的文件路径为dst,

//那么,输入的参数就是"java FileMerge dir det test.exe"

//其中,dir目录下有test.exe.part1,test.exe.part2等拆分文件

public static void main(String[] args)

{

if (args.length < 3)

{

System.out.println("三个参数: part文件路径,生成文件路径,被拆分的文件的名称");

return;

}

merge(args[0], args[1], args[2]);

}

//把partDir下的fileName的拆分文件合并后,写到desDir目录下

//如果partDir或者desDir为空都返回false,不会自己创建目录

public static boolean merge(String partDir, String destDir, String fileName)

{

Vector partFileNames = new Vector();

//验证拆分文件的目录是否存在

File partDirFile = new File(partDir);

if (!partDirFile.exists() || !partDirFile.isDirectory())

{

System.out.println("拆分文件夹不存在");

return false;

}

//验证目标文件的目录是否存在

File destDirFile = new File(destDir);

if (!destDirFile.exists() || !destDirFile.isDirectory())

{

System.out.println("目标文件夹不存在");

return false;

}

//找出partDir目录下的fileName.part<1,2,...,x>文件,并排序

File[] filesOrDirs = partDirFile.listFiles();

int i, length = filesOrDirs.length;

for (i = 0; i < length; i++)

{

String tmpName = filesOrDirs[i].getName();

if (filesOrDirs[i].isFile() && tmpName.startsWith(fileName + ".part"))

partFileNames.add(tmpName);

}

Collections.sort(partFileNames);

if (partFileNames.size() <= 0)

{

System.out.println("没有找到拆分文件");

return false;

}

//逐个读取partFileNames文件,并重写到新目的地

try

{

byte[] buf = new byte[1024];

FileOutputStream fos = new FileOutputStream(destDir + "/" + fileName);

int size = partFileNames.size();

for (i = 0; i < size; i++)

{

File file = new File(partFileNames.elementAt(i));

FileInputStream fis = new FileInputStream(file);

int num = -1;

while((num = fis.read(buf)) > 0)

fos.write(buf, 0, num);

fis.close();

}

fos.close();

}

catch (IOException e1)

{

e1.printStackTrace();

}

return true;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的Java文件拆分合并示例: 1. Java文件拆分 假设我们有一个名为 `MyClass.java` 的Java文件,其中包含了两个类:`MyClass` 和 `MyUtil`。现在我们想要将这两个类分别放到不同的文件中进行管理。 首先,我们可以创建一个名为 `MyClass.java` 的新文件,将 `MyClass` 类的定义放进去: ```java // MyClass.java package com.example.myproject; public class MyClass { // MyClass 的定义 } ``` 接下来,我们创建一个名为 `MyUtil.java` 的新文件,将 `MyUtil` 类的定义放进去: ```java // MyUtil.java package com.example.myproject; public class MyUtil { // MyUtil 的定义 } ``` 最后,我们需要在 `MyClass` 文件中使用 `import` 语句来导入 `MyUtil` 类: ```java // MyClass.java package com.example.myproject; import com.example.myproject.MyUtil; public class MyClass { // MyClass 的定义 } ``` 2. Java文件合并 假设我们已经将 `MyClass` 和 `MyUtil` 类分别放到了 `MyClass.java` 和 `MyUtil.java` 两个文件中,现在我们想要将它们合并成一个文件。 首先,我们可以在 `MyClass.java` 文件中删除 `import` 语句,因为 `MyUtil` 类已经在同一目录下的 `MyUtil.java` 文件中定义了。 接着,我们将 `MyUtil` 类的定义粘贴到 `MyClass.java` 文件中: ```java // MyClass.java package com.example.myproject; public class MyClass { // MyClass 的定义 // MyUtil 的定义 public class MyUtil { // MyUtil 的定义 } } ``` 最后,我们将文件名修改为 `MyClassAndMyUtil.java`,就完成了Java文件合并。 总之,Java文件拆分合并可以根据文件中的类或接口进行分割和合并,需要注意包名、导入语句和代码依赖关系的设置,以便于编译器能够正确识别代码的结构和依赖关系。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值