`

java文件处理之压缩,分割操作

阅读更多
一.简单文件压缩,解压
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文件分割压缩是一种常见的操作,尤其在处理大数据或者网络传输时非常有用,因为单个大文件可能会导致处理效率低或传输困难。以下是一些相关的Java编程知识点: 1. **文件I/O操作**:在Java中,`java.io`包提供...

    java 文件分割器 文件分割器

    总结来说,Java文件分割器是利用Java的文件I/O功能实现的一个实用工具,它可以帮助我们有效地管理和处理大型文件。通过理解并实践这个过程,可以增强对Java I/O操作的理解,以及在实际问题中运用Java编程的能力。

    Java文件批量处理程序

    该程序主要实现了新建文件、复制、移动、删除、解压缩及分割/合并文件等功能,满足了用户对文件批量处理的需求。 程序功能 1. 新建文件:用户可以使用该程序新建文件和文件夹,满足用户对文件创建的需求。 2. 复制...

    分割文件(java)

    分割文件(java)分割文件(java)分割文件(java)分割文件(java)分割文件(java)分割文件(java)分割文件(java)分割文件(java)分割文件(java)分割文件(java)分割文件(java)分割文件(java)分割文件...

    文件压缩解压缩

    在IT行业中,文件压缩与解压缩是日常工作中常见的操作,特别是在数据传输、存储优化和软件分发等领域。这里我们主要探讨的是一个简单的工具类,它支持zip、rar、tar等多种格式的压缩和解压缩功能,并且经过实际测试...

    Java文件分割程序源代码.rar

    Java文件分割程序是一种用于大文件处理的技术,尤其在需要传输或存储大文件时非常有用。这个源代码包,"Java文件分割程序源代码.rar",提供了实现这一功能的Java编程逻辑,可以跨多个平台运行,这得益于Java的“一次...

    对tif进行分割的dll文件(可以处理压缩jpeg的tif文件)

    dll文件可以处理jpeg压缩的tif文件。java中调用示例 String inFile = "d:\\\\test.tif"; String outFile = "d:\\\\tiff\\\\"; Animal example = new Animal(); example.test(inFile, outFile); inFile是需要分割...

    分割tif文件的dll(可处理JPEG压缩等tif)

    java和C# 对JPEG压缩的tif文件处理不是很好,前段时间用VC写了个分割tif文件的dll文件,可以处理任何压缩方式的dll文件,java可以直接调用。 调用时,java必须放在com包下,java名FileSplit.java,jni方法名 public ...

    功能最齐全的JAVA压缩软件

    它可能是为了满足Java开发者或爱好者的需求,让他们能够更方便地处理文件压缩问题,特别是在开发项目中。 描述中的"最新的,用JAVA开发的压缩软件,带源码和文档"进一步揭示了这款软件的特性。"最新"意味着它采用了...

    java实现的LZW压缩方法

    在Java编程中,使用IO流进行文件操作,例如`BufferedReader`和`BufferedWriter`可以高效地读写文件;`HashMap`或`TreeMap`可以用于构建和查找编码表,保证效率;而`Integer.parseInt`和`Integer.toBinaryString`等...

    java文件分割

    java文件分割可以用来上传压缩,文件太大时可以选择这样操作哦!

    java文件压缩

    Java文件压缩是一个常见的任务,特别是在处理大量数据或者需要在网络上传输数据时。Java提供了一些库和API来实现文件和文件夹的压缩与解压缩。在Java中,最常用的压缩库是Java Archive (JAR) 文件格式,以及Apache的...

    仿zip压缩软件的java代码|zip.rar

    【标题】:仿zip压缩软件的java代码 在Java编程中,实现自定义的压缩...通过阅读和分析这些代码,你可以了解到如何在Java中实现文件的压缩、解压缩、分割以及进度反馈,同时也能掌握Swing框架下界面设计的基本原理。

    java解压缩

    在IT领域,尤其是在Java开发和Android应用开发中,文件的压缩与解压缩是常见的需求之一。这不仅涉及到数据存储的优化,还关系到资源的有效管理和网络传输效率的提升。本文将深入探讨Java环境下如何实现文件的解压缩...

    文件分割合并程序

    标题 "文件分割合并程序" 涉及到的是一个实用工具,主要用于处理大文件的分割与合并。在日常工作中,我们可能遇到需要将一个大文件分成小块以便于传输、存储或管理的情况,或者需要将这些小块再重新组合成原始文件。...

    一个java实现的分布式文件存储系统,可以实现文件分布存储在不同的服务器中,进行上传、下载、删除

    文件上传过程中,客户端将文件分割并发送到各个节点,系统会处理文件的完整性校验和冗余备份,保证数据的一致性。 文件访问是分布式文件系统中的另一个重要方面。文件下载时,系统需要合并从不同节点接收到的数据块...

    Java 视频压缩 在linux和Windows环境都适应

    FFmpeg是一个强大的命令行工具,用于处理音频和视频文件,包括转换、解码、编码、分割等操作。通过Java的JNA(Java Native Access)或者JFFmpeg项目,我们可以将FFmpeg的功能集成到Java程序中,实现跨平台的视频压缩...

    java操作rar文件

    RAR是一种流行的文件压缩格式,由WinRAR软件广泛支持。Java虽然原生不包含处理RAR文件的库,但可以通过第三方库如“junrar”来实现这些功能。以下是对如何使用Java操作RAR文件进行详细解释。 首先,我们需要引入...

    基于java的开发源码-文件压缩解压缩包 Commons Compress.zip

    Java语言在处理文件压缩与解压缩任务时,通常会用到一些库,其中之一就是Apache Commons Compress库。这个库提供了对多种压缩格式的支持,包括但不限于ARJ、BZIP2、7z、Gzip、Pack200、XZ、Z标准压缩格式以及Unix...

    开源Winzip压缩工具Java版源码

    总之,开源Winzip压缩工具Java版源码是一个深入研究文件压缩、加密、并发处理和Java编程实践的好资源。通过阅读和分析源码,你可以提升自己的Java技能,了解如何在实际项目中实现高效且安全的文件压缩功能。

Global site tag (gtag.js) - Google Analytics