kinkajou
kinkajou

Reputation: 3728

Writing File object to another location

I have chosen file using

File file = fileChooser.getSelectedFile();

Now I want to write this file chosen by user to another location when user clicks save button. How to achieve that using swing?

Upvotes: 0

Views: 1555

Answers (4)

user1335794
user1335794

Reputation: 1092

read the file into a InputStream and then write it out to an OutputStream.

Upvotes: 0

COD3BOY
COD3BOY

Reputation: 12112

To select the file you need something like ,

    JFileChooser open = new JFileChooser();
    open.showOpenDialog(this);
    selected = open.getSelectedFile().getAbsolutePath(); //selected is a String 

...and to save a copy ,

    JFileChooser save = new JFileChooser();  
    save.showSaveDialog(this);  
    save.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
    tosave = fileChooser.getSelectedFile().getAbsolutePath(); //tosave is a String

    new CopyFile(selected,tosave);

...the copyFile class will be something like,

public class CopyFile {

    public CopyFile(String srFile, String dtFile) {

        try {
            File f1 = new File(srFile);
            File f2 = new File(dtFile);
            InputStream in = new FileInputStream(f1);

            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 (FileNotFoundException ex) {
            System.out.println(ex.getMessage() + " in the specified directory.");
            System.exit(0);
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }
    }
}

Also have a look at this question : How to save file using JFileChooser? #MightBeHelpfull

Upvotes: 2

Edwin Dalorzo
Edwin Dalorzo

Reputation: 78629

If you are using JDK 1.7 you can use the java.nio.file.Files class which offers several copy methods to copy a file to a given destiny.

Upvotes: 0

Colin D
Colin D

Reputation: 5661

Swing will just give you the location/File object. You are going to have to write the new file yourself.

To copy the file, I will point you to this question: Standard concise way to copy a file in Java?

Upvotes: 1

Related Questions