一.简单文件压缩,解压
package cn.edu.nju.vicken;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;
/** *//**
*
* @author VickenYang
* 文件处理工具
*/
public class FileProcessor ...{
public static void createZipFile(File from,File to) throws Exception ...{
if(!from.isFile())...{
throw new Exception("file not exists"+from.getAbsolutePath());
}
if(to.isFile())...{
throw new Exception("file already exists"+to.getAbsolutePath());
}
else...{
to.createNewFile();
}
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(to));
ZipEntry ze = null;
byte[] buf = new byte[1024];
int readLen = 0;
ze = new ZipEntry(from.getAbsolutePath());
ze.setSize(from.length());
ze.setTime(from.lastModified());
zos.putNextEntry(ze);
InputStream is = new BufferedInputStream(new FileInputStream(from));
while ((readLen=is.read(buf, 0, 1024))!=-1) ...{
zos.write(buf, 0, readLen);
}
is.close();
zos.close();
}
public static void decompressZipFile(File from,File to) throws Exception...{
if(!from.isFile())...{
throw new Exception("file not exists"+from.getAbsolutePath());
}
if(!to.isDirectory())...{
throw new Exception("file not directory"+to.getAbsolutePath());
}
ZipFile zfile = new ZipFile(from.getAbsoluteFile());
Enumeration zList = zfile.entries();
ZipEntry ze=null;
byte[] buf=new byte[1024];
while(zList.hasMoreElements())...{
ze=(ZipEntry)zList.nextElement();
if(ze.isDirectory())...{
continue;
}
String[] zet = ze.getName().replace('/', '/').split("/");
OutputStream os=new BufferedOutputStream(new FileOutputStream(to.getAbsoluteFile()+zet[zet.length-1]));
InputStream is=new BufferedInputStream(zfile.getInputStream(ze));
int readLen=0;
while ((readLen=is.read(buf, 0, 1024))!=-1) ...{
os.write(buf, 0, readLen);
}
is.close();
os.close();
}
zfile.close();
}
}
二.定时器程序
import java.util.Timer;
import java.util.TimerTask;
class MyTask extends TimerTask...{
String name;
public MyTask(String name)...{
this.name = name;
}
public void run()...{
System.out.println(name);
}
}
public class TestTask ...{
public static void main(String[] args) ...{
// TODO Auto-generated method stub
TimerTask task = new MyTask("10秒执行一次");
java.util.Date today = new java.util.Date();
//开始时间设置为昨天
java.util.Date beginTime = new java.util.Date(today.getYear(),today.getMonth(),today.getDate()-1,22,0,0);
//10秒一次
new Timer().schedule(task,beginTime,1000*10);
//执行一次
task = new MyTask("只执行一次");
new Timer().schedule(task,beginTime);
}
}
三.分割,合并文件
//拆分文件
public static void splitFile(File file,int size) throws Exception...{
if(size<=0)...{
size = 1024;
}
if(!file.isFile())...{
throw new Exception("file not exists"+file.getAbsolutePath());
}
String filename = file.getAbsolutePath();
File filetmp = new File(filename+"_"+0+".vk");
if(filetmp.isFile())...{
throw new Exception("file exists"+filetmp.getAbsolutePath());
}
byte[] buf = new byte[1024*10];
FileInputStream fis = new FileInputStream(file);
int readsize = 0;
int pos = 0;
int k = 0;
int m = -1;
File fileout = null;
FileOutputStream fos = null;
while((readsize = fis.read(buf, 0, buf.length))>0)...{
if(k!=m)
...{
if(fos!=null)...{
fos.close();
fos = null;
}
m = k;
fileout = new File(filename+"_"+k+".vk");
fos = new FileOutputStream(fileout);
}
fos.write(buf,0,readsize);
fos.flush();
pos += readsize;
if(pos>size*(k+1))...{
k++;
}
}
if(fos!=null)...{
fos.close();
fos = null;
}
fis.close();
}
//合并文件
public static void combination(File file) throws Exception...{
String filename = file.getAbsolutePath();
File fileout = new File(filename);
if(fileout.isFile())...{
throw new Exception("file exists"+fileout.getAbsolutePath());
}
FileOutputStream fos = new FileOutputStream(fileout);
int k = 0;
File filein = null;
FileInputStream fis = null;
byte[] buf = new byte[1024*10];
while(true)...{
if(fis!=null)...{
fis.close();
fis = null;
}
filein = new File(filename+"_"+k+".vk");
if(!filein.isFile())...{
break;
}
fis = new FileInputStream(filein);
int readsize = 0;
while((readsize = fis.read(buf, 0, buf.length))>0)...{
fos.write(buf,0,readsize);
fos.flush();
}
k++;
}
if(fis!=null)...{
fis.close();
fis = null;
}
fos.close();
}
分享到:
相关推荐
Java文件分割压缩是一种常见的操作,尤其在处理大数据或者网络传输时非常有用,因为单个大文件可能会导致处理效率低或传输困难。以下是一些相关的Java编程知识点: 1. **文件I/O操作**:在Java中,`java.io`包提供...
总结来说,Java文件分割器是利用Java的文件I/O功能实现的一个实用工具,它可以帮助我们有效地管理和处理大型文件。通过理解并实践这个过程,可以增强对Java I/O操作的理解,以及在实际问题中运用Java编程的能力。
该程序主要实现了新建文件、复制、移动、删除、解压缩及分割/合并文件等功能,满足了用户对文件批量处理的需求。 程序功能 1. 新建文件:用户可以使用该程序新建文件和文件夹,满足用户对文件创建的需求。 2. 复制...
分割文件(java)分割文件(java)分割文件(java)分割文件(java)分割文件(java)分割文件(java)分割文件(java)分割文件(java)分割文件(java)分割文件(java)分割文件(java)分割文件(java)分割文件...
在IT行业中,文件压缩与解压缩是日常工作中常见的操作,特别是在数据传输、存储优化和软件分发等领域。这里我们主要探讨的是一个简单的工具类,它支持zip、rar、tar等多种格式的压缩和解压缩功能,并且经过实际测试...
Java文件分割程序是一种用于大文件处理的技术,尤其在需要传输或存储大文件时非常有用。这个源代码包,"Java文件分割程序源代码.rar",提供了实现这一功能的Java编程逻辑,可以跨多个平台运行,这得益于Java的“一次...
dll文件可以处理jpeg压缩的tif文件。java中调用示例 String inFile = "d:\\\\test.tif"; String outFile = "d:\\\\tiff\\\\"; Animal example = new Animal(); example.test(inFile, outFile); inFile是需要分割...
java和C# 对JPEG压缩的tif文件处理不是很好,前段时间用VC写了个分割tif文件的dll文件,可以处理任何压缩方式的dll文件,java可以直接调用。 调用时,java必须放在com包下,java名FileSplit.java,jni方法名 public ...
它可能是为了满足Java开发者或爱好者的需求,让他们能够更方便地处理文件压缩问题,特别是在开发项目中。 描述中的"最新的,用JAVA开发的压缩软件,带源码和文档"进一步揭示了这款软件的特性。"最新"意味着它采用了...
在Java编程中,使用IO流进行文件操作,例如`BufferedReader`和`BufferedWriter`可以高效地读写文件;`HashMap`或`TreeMap`可以用于构建和查找编码表,保证效率;而`Integer.parseInt`和`Integer.toBinaryString`等...
java文件分割可以用来上传压缩,文件太大时可以选择这样操作哦!
Java文件压缩是一个常见的任务,特别是在处理大量数据或者需要在网络上传输数据时。Java提供了一些库和API来实现文件和文件夹的压缩与解压缩。在Java中,最常用的压缩库是Java Archive (JAR) 文件格式,以及Apache的...
【标题】:仿zip压缩软件的java代码 在Java编程中,实现自定义的压缩...通过阅读和分析这些代码,你可以了解到如何在Java中实现文件的压缩、解压缩、分割以及进度反馈,同时也能掌握Swing框架下界面设计的基本原理。
在IT领域,尤其是在Java开发和Android应用开发中,文件的压缩与解压缩是常见的需求之一。这不仅涉及到数据存储的优化,还关系到资源的有效管理和网络传输效率的提升。本文将深入探讨Java环境下如何实现文件的解压缩...
标题 "文件分割合并程序" 涉及到的是一个实用工具,主要用于处理大文件的分割与合并。在日常工作中,我们可能遇到需要将一个大文件分成小块以便于传输、存储或管理的情况,或者需要将这些小块再重新组合成原始文件。...
文件上传过程中,客户端将文件分割并发送到各个节点,系统会处理文件的完整性校验和冗余备份,保证数据的一致性。 文件访问是分布式文件系统中的另一个重要方面。文件下载时,系统需要合并从不同节点接收到的数据块...
FFmpeg是一个强大的命令行工具,用于处理音频和视频文件,包括转换、解码、编码、分割等操作。通过Java的JNA(Java Native Access)或者JFFmpeg项目,我们可以将FFmpeg的功能集成到Java程序中,实现跨平台的视频压缩...
RAR是一种流行的文件压缩格式,由WinRAR软件广泛支持。Java虽然原生不包含处理RAR文件的库,但可以通过第三方库如“junrar”来实现这些功能。以下是对如何使用Java操作RAR文件进行详细解释。 首先,我们需要引入...
Java语言在处理文件压缩与解压缩任务时,通常会用到一些库,其中之一就是Apache Commons Compress库。这个库提供了对多种压缩格式的支持,包括但不限于ARJ、BZIP2、7z、Gzip、Pack200、XZ、Z标准压缩格式以及Unix...
在IT行业中,有时候我们需要处理大型文件,为了便于管理和传输,我们可能会选择将大文件分割成多个小文件。在这个场景中,“分割文件并生成批处理文件”是一个实用的技术。批处理文件(通常以.bat或.cmd为扩展名)是...