Скопировать выбранный файл в другую директорию - Java

Узнай цену своей работы

Формулировка задачи:

Всем привет, помогите новичку с кодом, занимаюсь по книжке, вообщем задание было сделать программу графическую которая бы копировала выбранный файл, в другую директорию. Собственно вод код.
import java.io.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
 
public class Copyra implements ActionListener {
 
    JLabel label1, label2;
    JTextField field1, field2;
    JFileChooser choose1, choose2;
    JButton browse1, browse2, copyButton;
    JPanel windowContent;
    FileInputStream someFile = null;
    BufferedInputStream buff1 = null;
    FileOutputStream newFile = null;
    BufferedOutputStream buff2 = null;
 
    public Copyra() {
 
        GridLayout gl = new GridLayout(3,3);
        windowContent = new JPanel();
        windowContent.setLayout(gl);
 
        label1 = new JLabel("Choose file:");
        label2 = new JLabel("Select directory:");
 
        browse1 = new JButton("Browse");
        browse1.setBackground(Color.RED);
        browse1.addActionListener(this);
 
        browse2 = new JButton("Browse");
        browse2.setBackground(Color.YELLOW);
        browse2.addActionListener(this);
 
        copyButton = new JButton("Copy");
        copyButton.setBackground(Color.GREEN);
        copyButton.addActionListener(this);
 
        field1 = new JTextField();
        filed2 = new JTextField();
 
        public void actionPerformed(ActionEvent e) {
            choose1 = new JFileChooser();
            int a = choose1.showDialog(null, "Choose file");
            if (a == JFileChooser.APPROVE_OPTION) {
                File file1 = choose1.getSelectedFile();
                field1.setText(file1.getName());
            }
 
            choose2 = new JFileChooser();
            int b = choose2.showDialog(null, "Select directory");
            if (b == JFileChooser.APPROVE_OPTION) {
                File file2 = choose2.getSelectedFile();
                field2.setText(file2.getName());
            }
 
            JButton button = (JButton) e.getSource();
            if (button == copyButton) {
                try {
                    someFile = new FileInputStream(file1);
                    buff1 = new BufferedInputStream(someFile, 5000);
                    newFile = new FileOutputStream(file2);
                    buff2 = new BufferedOutputStream(newFile);
 
                    while (true) {
 
                        int byteValue = buff1.read();
                        buff2.write(byteValue);
 
                        if (byteValue == -1)
                            break;
                    }
            
                }
 
                catch (IOException e) {
                    System.out.println("Sorry operation failed " + e.toString());
                }
 
                finally {
                    try {
                        someFile.close();
                        newFile.close();
                    }
 
                    catch (Exception e1) {
                        e1.printStackTrace();
                    }
 
                    System.out.println("copy complete.");
                }
            }
 
        }
 
        windowContent.add(label1);
        windowContent.add(field1);
        windowContent.add(browse1);
        windowContent.add(label2);
        windowContent.add(field2);
        windowContent.add(browse2);
        windowContent.add(copyButton);
 
        JFrame frame = new Frame("Copyra");
        frame.setContentPane(windowContent);
        frame.pack();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
 
    }
 
    public static void main(String[] args) {
        Copyra copyra = new Copyra();
    }

Решение задачи: «Скопировать выбранный файл в другую директорию»

textual
Листинг программы
import java.io.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
 
public class Copyra implements ActionListener {
 
    JLabel label1, label2, label3;
    JTextField field1, field2;
    JFileChooser choose1, choose2;
    JButton browse1, browse2, copyButton;
    JPanel windowContent;
    FileInputStream someFile = null;
    BufferedInputStream buff1 = null;
    FileOutputStream newFile = null;
    BufferedOutputStream buff2 = null;
 
    public Copyra() {
 
        GridLayout gl = new GridLayout(3,3);
        windowContent = new JPanel();
        windowContent.setLayout(gl);
 
        label1 = new JLabel("Choose file:");
        label2 = new JLabel("Select directory:");
        label3 = new JLabel();
 
        browse1 = new JButton("Browse");
        browse1.setBackground(Color.RED);
        browse1.addActionListener(this);
 
        browse2 = new JButton("Browse");
        browse2.setBackground(Color.YELLOW);
        browse2.addActionListener(this);
 
        copyButton = new JButton("Copy");
        copyButton.setBackground(Color.GREEN);
        copyButton.addActionListener(this);
 
        field1 = new JTextField();
        field2 = new JTextField();
 
        
        windowContent.add(label1);
        windowContent.add(field1);
        windowContent.add(browse1);
        windowContent.add(label2);
        windowContent.add(field2);
        windowContent.add(browse2);
        windowContent.add(label3);
        windowContent.add(copyButton);
 
        JFrame frame = new JFrame("Copyra");
        frame.setContentPane(windowContent);
        frame.pack();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
 
    }
 
    public void actionPerformed(ActionEvent e) {
        JButton button = (JButton) e.getSource();
 
        if (button == browse1) {
            choose1 = new JFileChooser();
            choose1.showDialog(null, "Choose file");
            File file1 = choose1.getSelectedFile();
            field1.setText(file1.getName());
        }
 
        if (button == browse2) {
            choose2 = new JFileChooser();
            choose2.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
            choose2.showDialog(null, "Select directory");
            File file2 = choose2.getSelectedFile();
            field2.setText(file2.getName());
        }
 
    
        if (button == copyButton) {
            someFile = new FileInputStream(choose1.getSelectedFile());
            buff1 = new BufferedInputStream(someFile);
            File file3 = (File).createNewFile();
            newFile = new FileOutputStream(choose2.getSelectedFile()+file);
            buff2 = new BufferedOutputStream(newFile);
            
            while (true) {
 
                int byteValue = buff1.read();
                buff2.write(byteValue);
 
                if (byteValue == -1)
                    break;
            }
        }
 
    }
 
 
    public static void main(String[] args) {
        Copyra copyra = new Copyra();
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.222 из 5
Похожие ответы