`
zwm512327
  • 浏览: 56677 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Java做的文件分割合并工具

阅读更多
import java.io.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JMenuItem;
import java.awt.Rectangle;
import javax.swing.JMenu;
import javax.swing.JToolBar;
import javax.swing.JMenuBar;
import javax.swing.JTabbedPane;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JScrollPane;
import java.util.*;
import javax.swing.JComboBox;;
public class Menu {
	static File cunDir=new File("d:\\");
	static File[] fl;
	static File[] chuanFile;
	//static File yFile;
	//static File fMuLu;
	static  File fenGeFile;
	static  File cunMuLu;
	private JFrame jFrame = null;  //  @jve:decl-index=0:visual-constraint="64,31"
	private JTabbedPane jTabbedPane = null;
	private JPanel jPanel = null;
	private JPanel jPanel1 = null;
	private JLabel jLabel = null;
	private JTextField jTextField = null;
	private JButton jButton = null;
	private JLabel jLabel1 = null;
	private JTextField jTextField1 = null;
	private JButton jButton1 = null;
	private JLabel jLabel2 = null;
	private JTextField jTextField2 = null;
	private JLabel jLabel3 = null;
	private JButton jButton2 = null;
	private JButton jButton3 = null;
	private JButton jButton4 = null;
	private JButton jButton5 = null;
	private JFileChooser jFileChooser = null;
	private JFileChooser jFileChooser1 = null;
	private JScrollPane jScrollPane = null;
	private JLabel jLabel4 = null;
	private JTextArea jTextArea = null;
	private JButton jButton6 = null;
	private JLabel jLabel41 = null;
	private JComboBox jComboBox = null;
	private JTextField jTextField3 = null;
	private JButton jButton7 = null;
	/**
	 * This method initializes jFrame	
	 * 	
	 * @return javax.swing.JFrame	
	 */
	private JFrame getJFrame() {
		if (jFrame == null) {
			jFrame = new JFrame("分割合并工具");
			jFrame.setSize(new Dimension(361, 274));
			jFrame.setContentPane(getJTabbedPane());
			jFrame.setVisible(true);
			jFrame.setLocation(300,300);
			jFrame.setDefaultCloseOperation(jFrame.EXIT_ON_CLOSE);
		}
		return jFrame;
	}

	/**
	 * This method initializes jTabbedPane	
	 * 	
	 * @return javax.swing.JTabbedPane	
	 */
	private JTabbedPane getJTabbedPane() {
		if (jTabbedPane == null) {
			jTabbedPane = new JTabbedPane();
			jTabbedPane.addTab("分割", getJPanel());
			jTabbedPane.addTab("合并", getJPanel1());
		}
		return jTabbedPane;
	}

	/**
	 * This method initializes jPanel	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJPanel() {
		if (jPanel == null) {
			jLabel3 = new JLabel();
			jLabel3.setBounds(new Rectangle(283, 106, 51, 18));
			jLabel3.setText("M");
			jLabel2 = new JLabel();
			jLabel2.setBounds(new Rectangle(11, 103, 87, 28));
			jLabel2.setText("分割大小");
			jLabel1 = new JLabel();
			jLabel1.setBounds(new Rectangle(11, 60, 83, 28));
			jLabel1.setText("存储目录");
			GridBagConstraints gridBagConstraints = new GridBagConstraints();
			gridBagConstraints.gridx = 0;
			gridBagConstraints.gridy = 0;
			jLabel = new JLabel();
			jLabel.setText("源文件");
			jLabel.setBounds(new Rectangle(11, 16, 76, 33));
			jPanel = new JPanel();
			jPanel.setLayout(null);
			jPanel.add(jLabel, gridBagConstraints);
			jPanel.add(getJTextField(), null);
			jPanel.add(getJButton(), null);
			jPanel.add(jLabel1, null);
			jPanel.add(getJTextField1(), null);
			jPanel.add(getJButton1(), null);
			jPanel.add(getJFileChooser(), null);
			jPanel.add(jLabel2, null);
			jPanel.add(getJTextField2(), null);
			jPanel.add(jLabel3, null);
			jPanel.add(getJButton2(), null);
			jPanel.add(getJButton3(), null);
		}
		return jPanel;
	}

	/**
	 * This method initializes jPanel1	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJPanel1() {
		if (jPanel1 == null) {
			jLabel41 = new JLabel();
			jLabel41.setBounds(new Rectangle(164, 3, 108, 22));
			jLabel41.setText("合并后文件后缀:");
			jPanel1 = new JPanel();
			jPanel1.setLayout(null);
			jPanel1.add(getJButton4(), null);
			jPanel1.add(getJButton5(), null);
			jPanel1.add(getJFileChooser1(), null);
			jPanel1.add(getJScrollPane(), null);
			jPanel1.add(getJButton6(), null);
			jPanel1.add(jLabel41, null);
			jPanel1.add(getJComboBox(), null);
			jPanel1.add(getJTextField3(), null);
			jPanel1.add(getJButton7(), null);
		}
		return jPanel1;
	}

	/**
	 * This method initializes jTextField	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getJTextField() {
		if (jTextField == null) {
			jTextField = new JTextField();
			jTextField.setBounds(new Rectangle(105, 16, 165, 25));
		}
		return jTextField;
	}

	/**
	 * This method initializes jButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton() {
		if (jButton == null) {
			jButton = new JButton("...");
			jButton.setBounds(new Rectangle(285, 16, 35, 30));
			jButton.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
					jFileChooser.setMultiSelectionEnabled(false);
					jFileChooser.setFileSelectionMode(0);
					int state=jFileChooser.showOpenDialog(null);
					System.out.println("state="+state);
					//File fy=jFileChooser.getSelectedFile();
					if(state==0){
						fenGeFile=jFileChooser.getSelectedFile();
						jTextField.setText(fenGeFile.getAbsolutePath());
					}
				}
			});
		}
		return jButton;
	}

	/**
	 * This method initializes jTextField1	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getJTextField1() {
		if (jTextField1 == null) {
			jTextField1 = new JTextField();
			jTextField1.setBounds(new Rectangle(105, 60, 165, 25));
		}
		return jTextField1;
	}

	/**
	 * This method initializes jButton1	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton1() {
		if (jButton1 == null) {
			jButton1 = new JButton("...");
			jButton1.setBounds(new Rectangle(285, 60, 35, 30));
			jButton1.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
					jFileChooser.setMultiSelectionEnabled(false);
					jFileChooser.setFileSelectionMode(1);
					int state=jFileChooser.showOpenDialog(null);
					if(state==0){
						cunMuLu=jFileChooser.getSelectedFile();
						System.out.println("****"+cunMuLu.getAbsolutePath());
						jTextField1.setText(cunMuLu.getAbsolutePath());
					}
				}
			});
		}
		return jButton1;
	}

	/**
	 * This method initializes jTextField2	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getJTextField2() {
		if (jTextField2 == null) {
			jTextField2 = new JTextField(5);
			jTextField2.setBounds(new Rectangle(105, 104, 165, 25));
		}
		return jTextField2;
	}

	/**
	 * This method initializes jButton2	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton2() {
		if (jButton2 == null) {
			jButton2 = new JButton("分割");
			jButton2.setBounds(new Rectangle(11, 152, 135, 45));
			jButton2.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
					int a=0;
					try{
						a=Integer.parseInt(jTextField2.getText());
					}catch(Exception ee){
						System.out.println("erro");
						return;
					}
					FengGeHeBing.fenGe(fenGeFile, cunMuLu, a);
				}
			});
		}
		return jButton2;
	}

	/**
	 * This method initializes jButton3	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton3() {
		if (jButton3 == null) {
			jButton3 = new JButton("退出");
			jButton3.setBounds(new Rectangle(191, 152, 135, 45));
			jButton3.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
					System.exit(0);
				}
			});
		}
		return jButton3;
	}

	/**
	 * This method initializes jButton4	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton4() {
		if (jButton4 == null) {
			jButton4 = new JButton("打开");
			jButton4.setBounds(new Rectangle(8, 155, 85, 35));
			jButton4.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					jFileChooser1.setFileSelectionMode(0);
					jFileChooser1.setMultiSelectionEnabled(true);
					int state=jFileChooser1.showOpenDialog(null);
					String s="";
					if(state==0){
						fl=jFileChooser1.getSelectedFiles();
						int[] st=new int[fl.length];
						for(int i=0;i<fl.length;i++){
							String name=fl[i].getName();
							int index=name.indexOf('.');
							st[i]=Integer.parseInt(name.substring(0,index));
							s=s+fl[i].getName()+"\r\n";
							jTextArea.setText(s);
						}
						Arrays.sort(st);
						chuanFile=new File[st.length];
						for(int i=0;i<st.length;i++){
							chuanFile[i]=new File(fl[i].getParent()+"\\"+(i+1)+".tem");
						}
					}
				}
			});
		}
		return jButton4;
	}

	/**
	 * This method initializes jButton5	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton5() {
		if (jButton5 == null) {
			jButton5 = new JButton("合并");
			jButton5.setBounds(new Rectangle(113, 155, 85, 35));
			jButton5.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					FengGeHeBing.heBing(chuanFile,cunDir,jComboBox.getSelectedItem().toString());
					jTextArea.setForeground(Color.red);
					jTextArea.setText("合并已完成");
				}
			});
		}
		return jButton5;
	}

	/**
	 * @param args
	 */
	public Menu(){
		this.getJFrame();
	}
	/**
	 * This method initializes jFileChooser	
	 * 	
	 * @return javax.swing.JFileChooser	
	 */
	private JFileChooser getJFileChooser() {
		if (jFileChooser == null) {
			jFileChooser = new JFileChooser();
			jFileChooser.setBounds(new Rectangle(5, 204, 500, 326));
		}
		return jFileChooser;
	}

	/**
	 * This method initializes jFileChooser1	
	 * 	
	 * @return javax.swing.JFileChooser	
	 */
	private JFileChooser getJFileChooser1() {
		if (jFileChooser1 == null) {
			jFileChooser1 = new JFileChooser();
			jFileChooser1.setFileSelectionMode(0);
			jFileChooser1.setBounds(new Rectangle(5, 193, 500, 326));
		}
		return jFileChooser1;
	}

	/**
	 * This method initializes jScrollPane	
	 * 	
	 * @return javax.swing.JScrollPane	
	 */
	private JScrollPane getJScrollPane() {
		if (jScrollPane == null) {
			jScrollPane = new JScrollPane(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
			jScrollPane.setBounds(new Rectangle(15, 34, 325, 105));
			jScrollPane.setViewportView(getJTextArea());
			
		}
		return jScrollPane;
	}

	/**
	 * This method initializes jTextArea	
	 * 	
	 * @return javax.swing.JTextArea	
	 */
	private JTextArea getJTextArea() {
		if (jTextArea == null) {
			jTextArea = new JTextArea();
		}
		return jTextArea;
	}

	/**
	 * This method initializes jButton6	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton6() {
		if (jButton6 == null) {
			jButton6 = new JButton();
			jButton6.setBounds(new Rectangle(227, 155, 85, 35));
			jButton6.setText("退出");
			jButton6.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.exit(0);
				}
			});
		}
		return jButton6;
	}

	/**
	 * This method initializes jComboBox	
	 * 	
	 * @return javax.swing.JComboBox	
	 */
	private JComboBox getJComboBox() {
		if (jComboBox == null) {
			jComboBox = new JComboBox();
			jComboBox.setBounds(new Rectangle(276, 5, 69, 18));
			jComboBox.addItem(".exe");
			jComboBox.addItem(".pdf");
			jComboBox.addItem(".rm");
			jComboBox.addItem(".rmvb");
			jComboBox.addItem(".avi");
			jComboBox.setEditable(true);
		}
		return jComboBox;
	}

	/**
	 * This method initializes jTextField3	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getJTextField3() {
		if (jTextField3 == null) {
			jTextField3 = new JTextField();
			jTextField3.setText(cunDir.getAbsolutePath());
			jTextField3.setBounds(new Rectangle(110, 5, 50, 22));
		}
		return jTextField3;
	}

	/**
	 * This method initializes jButton7	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton7() {
		if (jButton7 == null) {
			jButton7 = new JButton();
			jButton7.setBounds(new Rectangle(1, 6, 105, 18));
			jButton7.setText("存放目录:");
			jButton7.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					jFileChooser1.setFileSelectionMode(1);
					jFileChooser1.setMultiSelectionEnabled(false);
					int state=jFileChooser1.showOpenDialog(null);
					if(state==0){
						cunDir=jFileChooser1.getSelectedFile();
						jTextField3.setText(cunDir.getAbsolutePath());
					}
				}
			});
		}
		return jButton7;
	}

	public static void main(String[] args) {
		new Menu();
	}

}

 

import java.io.*;
import java.util.*;
public class FengGeHeBing {
	static int nM=1024*1024;
	static public void fenGe(File fenGeFile,File cunMuLu,int daXiao){
		FileInputStream fis=null;
		try{
			if(!cunMuLu.isDirectory()){
				cunMuLu.mkdirs();
			}
			nM=nM*daXiao;
			int length=(int)fenGeFile.length();
			int num=length/nM;
			int yu=length%nM;
			System.out.println("feGenFile.length:"+length);
			fis=new FileInputStream(fenGeFile);
			//byte[] yByte=new byte[length];
			//fis.read(yByte);
			int wenJianShu=0;
			File[] fl=new File[num+1];
			int begin=0;
			for(int i=0;i<num;i++){
				fl[i]=new File(cunMuLu.getAbsolutePath()+"\\"+(i+1)+".tem");
				if(!fl[i].isFile()){
					fl[i].createNewFile();
				}
				FileOutputStream fos=new FileOutputStream(fl[i]);
				byte[] bl=new byte[nM];
				fis.read(bl);
				//fos.write(yByte,begin,daXiao*1024*1024);
				fos.write(bl);
				begin=begin+daXiao*1024*1024;
				fos.close();
				//System.out.println(fl[i].getName()+"  length"+fl[i].length());
			}
			if(yu!=0){
				fl[num]=new File(cunMuLu.getAbsolutePath()+"\\"+(num+1)+".tem");
				if(!fl[num].isFile()){
					fl[num].createNewFile();
				}
				FileOutputStream fyu=new FileOutputStream(fl[num]);
				byte[] bl=new byte[yu];
				fis.read(bl);
				//fyu.write(yByte,length-yu,yu);
				fyu.write(bl);
				fyu.close();
				//System.out.println(fl[num].getName()+"  length"+fl[num].length());
			}
		}catch(Exception e){
			e.printStackTrace();
		}
		finally{
			//fis.close();
		}
	}
	public static void heBing(File[] f,File cunDir,String hz) {
		try {
			//File[] fl = f.listFiles();
			File heBingFile = new File(cunDir.getAbsoluteFile()+"\\heBing"+hz);
			if (!heBingFile.isFile()) {
				heBingFile.createNewFile();
			}
			FileOutputStream fos = new FileOutputStream(heBingFile);
			for (int i = 0; i < f.length; i++) {
				FileInputStream fis = new FileInputStream(f[i]);
				int len = (int) f[i].length();
				byte[] bRead = new byte[len];
				fis.read(bRead);
				fos.write(bRead);
				fis.close();
			}
			fos.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public static void main(String[] args){
		File fenGeFile=new File("d:\\《金庸全集》典藏版v2.1.exe");
		File ccMuLu=new File("d:\\fenGe\\");
		int daXiao=3;
		//fenGe(fenGeFile,ccMuLu,daXiao);
		File heBingFile=new File("d:\\fenGe\\");
		//heBing(heBingFile);
	}
}

 

第一个java文件主要写界面,第二个java文件写分割合并应用。老婆给我禁魔,自娱而已。

  • 分割合并工具.jar (13.5 KB)
  • 描述: 命令 “java -jar 分割合并工具.jar” 运行。
  • 下载次数: 92
1
0
分享到:
评论

相关推荐

    java文件分割器,文件合并

    文件分割和文件合并功能,java语言开发

    文件分割与合并的java小工具

    使用java开发的一个大文件切割成多个小文件的工具,只要安装了java环境,之间点击运行就行了。

    JAVA文件分割合并器

    【JAVA文件分割合并器】是一种基于Java编程语言开发的实用工具,主要功能是对大文件进行高效地分割和合并。在日常工作中,我们可能遇到需要处理大量数据或传输超大文件的情况,这时文件分割和合并的功能就显得尤为...

    marc文件分割合并工具--PxMarcSplitAndMerge 0.2

    专门为marc文件设计的文件分割/合并工具。 (1)自动检测MARC记录。 (2)支持自定义输出编码和行分隔符 (3)可按行数/大小分割方式 (4)可将多文件合并。 需JAVA 1.6以上,直接运行jar文件或bat文件即可。 联系作者:...

    PDF文件分割合并工具

    PDF文件分割合并工具是一种实用软件,它允许用户对PDF文档进行高效的处理,包括将大型PDF文件分割成多个小文件或合并多个PDF文件为一个大文件。这种工具在处理大量PDF文档时尤其有用,例如,当你需要提取PDF中的部分...

    bin二进制文件合并工具

    bin二进制文件合并工具

    java文件分割压缩

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

    MARC文件分割合并工具--PxMarcSplitAndMerge 0.1

    专门为MARC文件设计的文件分割/合并工具,尽最大限度地保留每一条MARC记录的完整性。 (1)自动检测源编码/手动选择源编码 (2)支持自定义输出编码和行分隔符 (3)可按行数/大小分割方式 (4)可将多文件合并 (5)可将多...

    文件拆分与合并工具

    用于大文件的拆分和拆分传输后对端文件的恢复 ...java FileSpliter 文件名 拆分文件存储文件夹名 每片包含字节数 文件合并 java FileCombine 拆分文件存储文件夹名 执行成功后在文件夹中合并出原有文件

    基于java的文件分割器源码

    本篇文章将详细探讨基于Java的文件分割器和合并器的实现原理、相关知识点以及源码解析。 首先,文件分割是在大文件处理时常用的一种技术。当一个文件过大,无法一次性读取或者传输时,可以将其分割成多个小文件进行...

    JAVA编程-分割合并文件-jar包中含源码

    在Java编程中,有时我们需要处理大文件,例如为了节省存储空间、提高传输效率或适应某些系统限制,可能需要将大文件分割成多个小文件。这个资源包提供了实现这一功能的代码,同时也支持将这些小文件合并回原始的大...

    文件分割合并程序

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

    超大文件拆分合并工具.zip

    超大文件拆分合并工具是针对那些体积庞大的文件而设计的一种实用软件,它采用Java编程语言进行开发,具有跨平台的特性。在当前数字化时代,处理大容量文件的需求日益增加,尤其是在网络传输、存储和备份过程中,超大...

    文件分割(合并)器(源代码)

    本项目名为“文件分割(合并)器(源代码)”,它提供了对影视、图片等二进制文件进行分割和合并的功能。下面,我们将详细探讨这个工具的工作原理、实现方式以及可能的应用场景。 首先,让我们了解文件分割的概念。...

    java文件分割器java文件分割器

    Java文件分割器是一种工具,用于将大文件分割成多个小文件,或者将多个小文件合并成一个大文件。这在处理非常大的数据集时特别有用,可以提高文件管理效率和数据处理速度,尤其是在网络传输、存储管理和数据分析领域...

    java_文件拆分合并

    文件拆分是指将一个大文件分割成多个小文件,以便于管理、传输或处理。这通常通过读取原始文件,每次读取固定大小的数据块,然后将其写入新的文件中来实现。以下是一个简单的文件拆分示例: ```java import java.io...

    Java实现文件分割与合并

    总的来说,Java通过其强大的I/O库提供了处理大文件的强大工具,使得文件分割与合并变得简单而高效。在实际应用中,开发者需要根据具体需求对这些基础方法进行适当的调整和封装,以满足特定场景下的文件处理需求。

Global site tag (gtag.js) - Google Analytics