?? copyfiledemo.java
字號:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
//拷貝文件演示
public class CopyFileDemo extends JFrame{
JFileChooser fileChooser; //文件選擇器
JTextField jtfSourceFile; //源文件路徑
JTextField jtfTargetFile; //目標文件路徑
JButton selectFile1; //選擇文件按鈕
JButton selectFile2;
JButton copyButton; //拷貝按鈕
public CopyFileDemo(){
super("拷貝文件演示"); //調用父類構造函數
fileChooser=new JFileChooser(); //實例化文件選擇器
Container container=getContentPane(); //得到容器
jtfSourceFile=new JTextField(16); //實例化組件
jtfTargetFile=new JTextField(16);
selectFile1=new JButton("選擇");
selectFile2=new JButton("選擇");
copyButton=new JButton("拷貝");
Box box=Box.createVerticalBox(); //實例化Box,用于容納組件
JPanel panel=new JPanel();
panel.add(new JLabel("源 文 件")); //增加組件到面板(panel)上
panel.add(jtfSourceFile);
panel.add(selectFile1);
box.add(panel); //增加組件到Box上
panel=new JPanel();
panel.add(new JLabel("目標文件"));
panel.add(jtfTargetFile);
panel.add(selectFile2);
box.add(panel);
box.add(copyButton);
container.add(box); //增加組件到容器上
selectFile1.addActionListener(new SelectFileListener()); //設置選擇文件的事件處理
selectFile2.addActionListener(new SelectFileListener());
copyButton.addActionListener(new ActionListener(){ //拷貝按鈕事件處理
public void actionPerformed(ActionEvent event) {
String sourceFile=jtfSourceFile.getText(); //得到源文件路徑
String targetFile=jtfTargetFile.getText(); //得到目標文件路徑
if (copy(sourceFile,targetFile)){ //拷貝文件
JOptionPane.showMessageDialog(CopyFileDemo.this,"拷貝成功"); //顯示拷貝成功信息
}
else{
JOptionPane.showMessageDialog(CopyFileDemo.this,"拷貝失敗"); //發生錯誤
}
}
});
setSize(340,160); //設置窗口尺寸
setVisible(true); //設置窗口可視
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //關閉窗口時退出程序
}
class SelectFileListener implements ActionListener { //取得目錄內容的事件處理
public void actionPerformed(ActionEvent event) {
if (fileChooser.showOpenDialog(CopyFileDemo.this)==JFileChooser.APPROVE_OPTION){ //彈出文件選擇器,并判斷是否點擊了打開按鈕
String fileName=fileChooser.getSelectedFile().getAbsolutePath(); //得到選擇文件的絕對路徑
if (event.getSource().equals(selectFile1)){ //判斷事件來自于哪個按鈕
jtfSourceFile.setText(fileName); //設置源文件路徑
}
else{
jtfTargetFile.setText(fileName); //設置目標文件路徑
}
}
}
}
public boolean copy(String file1,String file2){ //拷貝文件方法
try{
java.io.File fileIn=new java.io.File(file1); //用路徑名生成源文件
java.io.File fileOut=new java.io.File(file2); //用路徑名生成目標文件
FileInputStream fin=new FileInputStream(fileIn); //得到文件輸入流
FileOutputStream fout=new FileOutputStream(fileOut); //得到文件輸出流
byte[] bytes=new byte[1024]; //初始化字節數組,用于緩沖
int c;
while((c=fin.read(bytes))!=-1){ //如果文件未讀完
fout.write(bytes,0,c); //將讀取的字節數組寫入目標文件輸出流中
}
fin.close(); //關閉輸入流
fout.close(); //關閉輸出流
return true;
}
catch(Exception e){
return false;
}
}
public static void main(String[] args){
new CopyFileDemo();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -