我正在使用java swing执行从一个位置复制到另一个位置的代码。我在这里为Browse
做了。但我不知道如何添加复制按钮的功能。请帮我解释一下代码。提前致谢。这是我的完整代码。 (对不起,如果我错了,我第一次使用这个)
/*
For Browse button.
*/
package com.design;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class Browse extends JFrame implements
ActionListener {
JButton button1, button2 ;
JTextField field1, field2;
public Browse () {
this.setLayout(null);
button1 = new JButton("Browse");
field1 = new JTextField();
field1.setBounds(30, 50, 200, 25);
button1.setBounds(240, 50, 100, 25);
this.add(field1);
this.add(button1);
button2 = new JButton("Copy");
button2.setBounds(150, 150, 100, 25);
this.add(button2);
button1.addActionListener(this);
setDefaultCloseOperation
(javax.swing.WindowConstants.EXIT_ON_CLOSE
);
}
public void actionPerformed(ActionEvent e) {
Chooser frame = new Chooser();
field1.setText(frame.fileName);
}
public static void main(String args[]) {
Browse frame = new Browse ();
frame.setSize(400, 300);
frame.setLocation(200, 100);
frame.setVisible(true);
}
}
class Chooser extends JFrame {
JFileChooser chooser;
String fileName;
public Chooser() {
chooser = new JFileChooser();
int r = chooser.showOpenDialog(new JFrame());
if (r == JFileChooser.APPROVE_OPTION) {
fileName = chooser.getSelectedFile().getPath();
System.out.println(fileName);
}
}
}
答案 0 :(得分:1)
这是使用Java 7复制文件的代码段
try {
Files.copy(new File(your_source_file).toPath(), new File(your_target_file).toPath(), StandardCopyOption.REPLACE_EXISTING);
} catch (IOException e) {
e.printStackTrace();
}
但是,我不确定它是否也支持java 6和以前的版本,因此这是一个“diy”代码段,可以与所有Java版本一起使用,如果文件已被复制,则返回true
,false
如果抛出一些异常:
public boolean copyfile(String sourceFile, String targetFile) {
try {
File f1 = new File(sourceFile);
File f2 = new File(targetFile);
InputStream in = new FileInputStream(f1);
//Write to the new file
OutputStream out = new FileOutputStream(f2);
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
in.close();
out.close();
System.out.println("File copied.");
} catch (Exception ex) {
ex.printStackTrace();
return false;
}
return true;
}
希望这有帮助