package wangfh.com.cn;
import java.awt.FileDialog;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import javax.swing.*;
public class FileSa implements ActionListener{
JTextField ja1 = new JTextField(20);
JTextField ja2 = new JTextField(20);
FileDialog fd = null;
public FileSa(){
JFrame jf = new JFrame("文件分割");
fd = new FileDialog(jf);
JPanel j1 = new JPanel();
JPanel j2 = new JPanel();
JLabel jl1 = new JLabel("open file:");
JLabel jl2 = new JLabel("size:");
JButton jb1 = new JButton("open");
JButton jb2 = new JButton("split");
JButton jb3 = new JButton("sum");
jb1.addActionListener(this);
jb2.addActionListener(this);
jb3.addActionListener(this);
j1.add(jl1);
j1.add(ja1);
j1.add(jb1);
j2.add(jl2);
j2.add(ja2);
j2.add(jb2);
j2.add(jb3);
jf.add(j1,"North");
jf.add(j2);
jf.setVisible(true);
jf.pack();
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new FileSa();
}
public void actionPerformed(ActionEvent e) {
String comm = e.getActionCommand();
if(comm.equals("open")){
fd.setVisible(true);
if(fd.getFile()!=null){//有选择文件
ja1.setText(fd.getDirectory()+fd.getFile());
}
}else if(comm.equals("split")){
if((!ja1.getText().equals("")) &&(!ja2.getText().equals(""))){
try{
FileInputStream fis = new FileInputStream(ja1.getText());
byte[] b = new byte[Integer.parseInt(ja2.getText())];
int n = 0;
int i = 0;
while((n=fis.read(b))!=-1){
FileOutputStream fos =
new FileOutputStream(ja1.getText()+i);
fos.write(b,0,n);
fos.close();
i++;
}
fis.close();
}catch(Exception ee){
ee.printStackTrace();
}
}
}else{
if(!ja1.getText().equals("")){
try{
FileOutputStream fos = new FileOutputStream(ja1.getText());
int n = 0;
int i = 0;
while(true){
File f = new File(ja1.getText()+i);
if(f.exists()){
FileInputStream fis =
new FileInputStream(f);
byte[] b = new byte[(int)f.length()];
n=fis.read(b);
fos.write(b,0,n);
fis.close();
i++;
System.out.println(i);
}else{
fos.close();
break;
}
}
}catch(Exception ee){
ee.printStackTrace();
}
}
}
}
}