我正在尝试使用 Java 将图像文件从一个位置复制到另一个位置。现在我想将图像文件保存为特定大小,无论源位置中图像文件的大小是多少。
我正在使用以下代码,它在目标位置生成与源文件大小相同的图像:
public class filecopy {
public static void copyFile(File sourceFile, File destFile)
throws IOException {
if (!destFile.exists()) {
destFile.createNewFile();
}
FileChannel source = null;
FileChannel destination = null;
try {
source = new FileInputStream(sourceFile).getChannel();
destination = new FileOutputStream(destFile).getChannel();
// previous code: destination.transferFrom(source, 0, source.size());
// to avoid infinite loops, should be:
long count = 0;
long size = source.size();
while ((count += destination.transferFrom(source, count, size
- count)) < size)
;
} finally {
if (source != null) {
source.close();
}
if (destination != null) {
destination.close();
}
}
}
public static void main(String args[]) {
try {
File sourceFile = new File("D:/new folder/abc.jpg");
File destFile = new File("d:/new folder1/abc.jpg");
copyFile(sourceFile,destFile);
} catch (IOException ex) {
ex.printStackTrace();
}
}
}