Как я могу скопировать PNG файлы? и Dynami c путь к каталогу - PullRequest
1 голос
/ 28 апреля 2020

Итак, я написал этот код, который копирует файл из папки в другую! он отлично работает с файлами .mp3 .wav .jpeg.jpg

, но не работает с файлами .png! (изображение уничтожено или пропущена половина)

Есть ли способ отредактировать код, если он работает с файлами .png? если нет, как я могу их скопировать?

Я также хочу добавить еще один вопрос! текущий код работает на моем компьютере, потому что этот путь D:\\move\\1\\1.mp3 существует на моем компьютере!

, если я конвертирую свою программу в файл .exe и передаю ее кому-то другому, она не работает, потому что этот путь не ' не существует на его компьютере! поэтому вместо этой строки

    FileInputStream up = new FileInputStream("D:\\move\\1\\images\\1.jpg");

я хочу сделать что-то вроде

    FileInputStream up = new FileInputStream(findAppFolder+"\\images\\1.jpg");

код:

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Main {

    public static void main(String[] args) throws IOException {

        FileInputStream up = new FileInputStream("D:\\move\\1\\images\\1.jpg");
        FileOutputStream down = new FileOutputStream("D:\\move\\2\\images\\2.jpg");
        BufferedInputStream ctrl_c = new BufferedInputStream(up);
        BufferedOutputStream ctrl_v = new BufferedOutputStream(down);
        int b=0;
        while(b!=-1){
            b=ctrl_c.read();
            ctrl_v.write(b);
        }
        ctrl_c.close();
        ctrl_v.close();
    }

}

1 Ответ

1 голос
/ 28 апреля 2020

Попробуйте так:

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

Path source=Paths.get("abc.png");
Path destination=Paths.get("abcNew.png");
Files.copy(source, destination);

Или, если вы хотите использовать Java ввод / вывод, попробуйте так:

public void copy(File src, File dst) throws IOException {
    InputStream in = new FileInputStream(src);
    OutputStream out = new FileOutputStream(dst);

    // Transfer all byte from in to out
    byte[] buf = new byte[1024];
    int len;
    while ((len = in.read(buf)) > 0) {
        out.write(buf, 0, len);
    }
    in.close();
    out.close();
}
...