⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filecutter.java

📁 java 实现 FileCutter ~~~~~~~~
💻 JAVA
字号:
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class FileCutter extends JFrame implements ActionListener{

     String sFile,Dir;
     JLabel tb=new JLabel("分割大小(MB):");
     JTextField len=new JTextField(5);
     JButton open=new JButton("Open");
     JButton cut=new JButton("Cut");
     JButton combination=new JButton("Combination");
     JTextField tf=new JTextField(30);
     JFileChooser fg = new JFileChooser(".");
     JProgressBar prss=new JProgressBar(0,100);
     JPanel p1=new JPanel();
     JPanel p2=new JPanel();
     File outFile;
     //JProgressBar prss=new JProgressBar ();


    public FileCutter() {

    Container contentPane = this.getContentPane();
     contentPane.setLayout(new BorderLayout());

     p1.add(tf);
     p1.add(open);
     p2.add(tb);
     p2.add(len);
     p2.add(cut);
     p2.add(combination);
     len.setText("1");
     open.addActionListener(this);
     cut.addActionListener(this);
     combination.addActionListener(this);
     contentPane.add("North",p1);
     contentPane.add("Center",p2);
     contentPane.add("South",prss);
     //contentPane.add("South",prss);

        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                dispose();
                System.exit(0);
            }
        });
    }

    public void actionPerformed(ActionEvent e)
     {

        if(e.getSource()==open)
        {

           FileDialog dlg=new FileDialog(this,"Open",FileDialog.LOAD);
           dlg.setVisible(true);

           tf.setText(dlg.getDirectory()+dlg.getFile());
        }

        if(e.getSource()==cut)
        {
        new Thread()
          {
           public void run()
            {
              int coun=0,i=0,j=0,k=0;
              String a[]={".#000",".#00",".#0",".#"};
              long clen,tole=0,flen,max,LenCount=0;
              byte buffer[]=new byte[1024*1024];
              File inFile=new File(tf.getText());
              flen=inFile.length();
              clen=Integer.parseInt(len.getText())*1024*1024;
              max=(int)flen/clen;
              try
              {

              InputStream in =new FileInputStream(inFile);
              BufferedInputStream bm=new BufferedInputStream(in,1024*10240);
              ProgressMonitorInputStream pm =new ProgressMonitorInputStream(p2,"Cutting the big file",bm);

              int c;
              for(;i<max;i++)
              {
                if(i<10){coun=0;}
                else if(i<100){coun=1;}
                else if(i<1000){coun=2;}
                else if(i<10000){coun=3;}

                File outFile = new File(tf.getText()+a[coun]+Long.toString(i)+".pier");
                RandomAccessFile out=new RandomAccessFile(outFile,"rw");
                tole+=clen;

                 for(;j<tole;)
                 {
                  if((k=pm.read(buffer))!=-1)
                  {
                   out.write(buffer,0,k);
                   j+=k;
                  }
                 }
                 //System.out.print(LenCount+",");
                 //System.out.print("tole"+tole+",");

                 out.close();
                 //buffer=new byte[1024];
              }
                if(i<10){coun=0;}
                else if(i<100){coun=1;}
                else if(i<1000){coun=2;}
                else if(i<10000){coun=3;}

                File outFile = new File(tf.getText()+a[coun]+Long.toString(i)+".pier");
                RandomAccessFile out=new RandomAccessFile(outFile,"rw");


                 //int j=0;
                 for(;j<flen;)
                 {
                  if((k=pm.read(buffer))!=-1)
                  {
                   out.write(buffer,0,k);
                   j+=k;
                  }
                 }
                 out.close();

                 pm.close();


              }
             catch(IOException ex)
             {
              JOptionPane.showMessageDialog(null,ex.toString(), "错误", JOptionPane.ERROR_MESSAGE);
             }
             }
             }.start();
             }


        if(e.getSource()==combination)
        {
            prss.setValue(0);
            sFile=tf.getText();
            int num=sFile.indexOf('#');
            //System.out.println(num);
            sFile=sFile.substring(0,num-1);
            FileDialog dlg=new FileDialog(this,"Save",FileDialog.SAVE);
            dlg.setFile(sFile);
            dlg.setVisible(true);
            outFile=new File(dlg.getDirectory()+dlg.getFile());
            Dir=dlg.getDirectory();

            new Thread()
              {
               public void run()
                 {
                  int num=0,fl;
                  String n,tt[],sDir;
                  byte buffer[]=new byte[1024*1024];
                  sDir=Dir;
                  File inFile=new File(tf.getText());
                  //System.out.println(outFile);
                  File fList=new File(inFile.getParent());
                  tt = fList.list(new FilenameFilter()
                  {
                    public boolean accept(File dir,String name)
                    {
                      String rr = new File(name).toString();
                      return rr.endsWith("pier");
                    }
                  });
                  for(int i=0;i<tt.length;i++)
                    {
                      System.out.println(sDir+tt[i]);
                    }
                  System.out.println(tt.length);
                 try{
                      RandomAccessFile out=new RandomAccessFile(outFile,"rw");
                      int j=100/tt.length;
                      for (int i=0;i<tt.length;i++)
                        {
                           inFile=new File(sDir+tt[i]);
                           RandomAccessFile in=new RandomAccessFile(inFile,"r");
                           int c;
                           while((c=in.read(buffer))!=-1)
                           {
                             out.write(buffer,0,c);
                           }
                           prss.setValue(i*j);
                           in.close();
                           }
                           prss.setValue(100);

                          //bmo.close();
                          //pmo.close();
                            out.close();

                          javax.swing.JOptionPane.showMessageDialog(null,"完成", "完成", JOptionPane.INFORMATION_MESSAGE);
                    }
                    catch(IOException ex)
                    {
                     JOptionPane.showMessageDialog(null,ex.toString(), "错误", JOptionPane.ERROR_MESSAGE);
                    }
                }
             }.start();
         }
      }

    public static void main(String[] args) {
        FileCutter frame = new FileCutter();
        frame.setSize(500, 150);
        frame.setTitle("FileCutter");
        frame.setVisible(true);
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -