首先我们来解读一下其中的一些代码:
public void actionPerformed(ActionEvent arg0) {
if (arg0.getSource() == btn1) {
JFileChooser fileChooser=new JFileChooser();
fileChooser.setMultiSelectionEnabled(false);
fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
int n=fileChooser.showOpenDialog(CopyFileJFrame.this);
if(n==JFileChooser.APPROVE_OPTION){
srcFile=fileChooser.getSelectedFile();
srcFileJTextField.setText(srcFile.getAbsolutePath());
}
我们可以看到,在这里创建了JFileChooser对象,其中呢,对象名 加 . 加方法名称,来调用相关的方法。
fileChooser.setMultiSelectionEnabled(false);
这个语句中的方法setMultiSelectionEnabled(false)方法为
JFileChooser (Java 2 Platform SE 5.0)
setMultiSelectionEnabled(boolean b) 设置文件选择器,以允许选择多个文件。 |
设置为 false 即为,只能选择一个文件。
fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
JFileChooser (Java 2 Platform SE 5.0)
setFileSelectionMode(int mode) 设置 JFileChooser ,以允许用户只选择文件、只选择目录,或者可选择文件和目录 |
这个为确定选择的属性,即设定选择的是文件还是目录或是可以文件可以目录,
JFileChooser.APPROVE_OPTION
JFileChooser (Java 2 Platform SE 5.0)
APPROVE_OPTION 选择确认(yes、ok)后返回该值。 |
这个用于确定用户是否点击确定按钮。
下面我们来写代码,主要的代码区域是在private class CopyFileThread extends Thread内,我下边把代码写一下:
while (true) {
File file1=new File(srcFile.getAbsolutePath());
try {
String oldname=srcFile.getName();
String tzm=oldname.substring(oldname.lastIndexOf(".")+1);
FileInputStream fileInputStream=new FileInputStream(file1);
FileOutputStream fileOutputStream=new FileOutputStream(tarFile.getAbsolutePath()+"/"
+oldname.substring(0, oldname.lastIndexOf("."))+"-附件"+"."+tzm);
byte b[]=new byte[5];
int n;
while((n=fileInputStream.read(b))!=-1){
fileOutputStream.write(b);
}
fileInputStream.close();
fileOutputStream.close();
} catch (FileNotFoundException e) {
// TODO 自动生成的 catch 块
System.out.println("要写的文件不存在且无法创建!");
e.printStackTrace();
}
catch (IOException e) {
System.out.println("写文件失败!");
}
JOptionPane.showMessageDialog(null, "复制完成!");
break;
}
String tzm=oldname.substring(oldname.lastIndexOf(".")+1);
这个是为了获取文件的拓展名,否则若直接在文件名称后加上“-副本”字样,会导致文件没有拓展名而无法运行。
break,是结束当前行为,当执行到 break 时代表先前的已经执行完,为了跳出:while(true),我们使用了 break。
好的,作业我们到此完成,如果其中的代码有哪里不明白的,可以在评论区评论。
项目文件下载地址:点击下载
转载请注明:TeenShare 梯云分享