//老师代码
package tarena;
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();
}
}
}
}
}