编写完整的Java程序。生成下图所示界面,并采用监听器方式的时间处理。完成下述功能:按“复制文件”按钮后,将当前目录下的source.txt文件中的数据写到另一个文件dest.txt中。
package myjava;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class CopyUI extends JFrame implements ActionListener{
JButton copyBtn = null;
/**
* 构造函数
*/
public CopyUI() {
init();
}
/**
*初始化UI
*/
public void init() {
this.getContentPane().setLayout(new FlowLayout());
this.setSize(100, 80);//设置显示大小
copyBtn = new JButton("Copy file");//定义按钮
this.add(copyBtn);
copyBtn.addActionListener(this);//添加监听
}
/**
* 按钮事件处理方法
*/
public void actionPerformed(ActionEvent arg0) {
FileInputStream input = null;//输入流
FileOutputStream output = null;//输出流
try {
input = new FileInputStream(new File(CopyUI.class.getResource("/").getPath() + "myjava/source.txt"));
output = new FileOutputStream(new File(CopyUI.class.getResource("/").getPath() + "myjava/dest.txt"));
int byteread = 0;
byte[] buffer = new byte[1024];
while ( (byteread=input.read(buffer)) != -1) {
output.write(buffer, 0, byteread);
output.flush();
}
input.close();
output.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (input != null) {//关闭输入流
try {
input.close();
input = null;
} catch (IOException e) {
e.printStackTrace();
}
}
if (output != null) {//关闭输出流
try {
output.close();
output = null;
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
CopyUI ui = new CopyUI();
ui.show();
}
}