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文件写分割合并应用。老婆给我禁魔,自娱而已。