Java图片化界面设置button2为选择文件地址,button3为将文件拷贝到的地址,点击button1实现二进制文件的拷贝,编写代码,详细讲讲
时间: 2024-02-18 16:06:21 浏览: 78
上传二进制文件到数据库源码
好的,下面是Java代码实现的步骤:
1. 首先需要在界面上添加两个按钮Button2和Button3,分别用于选择源文件和目标文件的路径。
2. 在Button2的点击事件中,弹出文件选择对话框,允许用户选择源文件的路径,并将所选路径显示在界面上。
3. 在Button3的点击事件中,同样弹出文件选择对话框,允许用户选择目标文件的路径,并将所选路径显示在界面上。
4. 在Button1的点击事件中,获取用户选择的源文件路径和目标文件路径,并使用Java IO中的FileInputStream和FileOutputStream类来进行二进制文件的拷贝。
下面是完整的Java代码实现:
```
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class BinaryCopy extends JFrame implements ActionListener {
JButton button1, button2, button3;
JTextField text1, text2;
public BinaryCopy() {
setTitle("二进制文件拷贝");
setSize(500, 200);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(3, 2));
JLabel label1 = new JLabel("源文件路径:");
text1 = new JTextField();
button2 = new JButton("选择文件");
button2.addActionListener(this);
JLabel label2 = new JLabel("目标文件路径:");
text2 = new JTextField();
button3 = new JButton("选择文件夹");
button3.addActionListener(this);
button1 = new JButton("开始拷贝");
button1.addActionListener(this);
panel.add(label1);
panel.add(text1);
panel.add(button2);
panel.add(new JLabel());
panel.add(label2);
panel.add(text2);
panel.add(button3);
panel.add(new JLabel());
panel.add(button1);
add(panel);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button2) {
JFileChooser chooser = new JFileChooser();
chooser.setDialogTitle("选择源文件");
chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
int result = chooser.showOpenDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
text1.setText(chooser.getSelectedFile().getAbsolutePath());
}
} else if (e.getSource() == button3) {
JFileChooser chooser = new JFileChooser();
chooser.setDialogTitle("选择目标文件夹");
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int result = chooser.showOpenDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
text2.setText(chooser.getSelectedFile().getAbsolutePath());
}
} else if (e.getSource() == button1) {
try {
File source = new File(text1.getText());
File target = new File(text2.getText() + "\\" + source.getName());
FileInputStream fis = new FileInputStream(source);
FileOutputStream fos = new FileOutputStream(target);
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer)) > 0) {
fos.write(buffer, 0, length);
}
fis.close();
fos.close();
JOptionPane.showMessageDialog(this, "拷贝完成!", "提示", JOptionPane.INFORMATION_MESSAGE);
} catch (IOException ex) {
JOptionPane.showMessageDialog(this, "拷贝错误:" + ex.getMessage(), "错误", JOptionPane.ERROR_MESSAGE);
}
}
}
public static void main(String[] args) {
new BinaryCopy();
}
}
```
以上就是Java二进制文件拷贝的代码实现,希望能对您有所帮助。
阅读全文