如何在Java中实现复制图片

本文介绍了一个简单的Java程序,用于复制图像文件。通过读取源文件并将其内容逐字节写入新位置来实现图像的复制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本来打算今天写的,只是时间不够了,明天补上吧。今天留个标题吧。(4月4日写)

ContractedBlock.gifExpandedBlockStart.gifCopyImage
package copyImage;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Vector;

public class CopyImage {

/**
*
@param args
*
@author 文化遗产新编
*
@since 2011/4/5
*/

public static void main(String[] args){
// TODO Auto-generated method stub

BufferedReader br;
//读取屏幕输入的一行(路径)
String copyedPath;//存放屏幕上输入的源文件的路径
File file;//存放输入的源文件
FileInputStream fileIn;//读取诸如图像数据之类的原始字节流
Vector<Integer> data;//存放源图片的字节
boolean end = false;//标识:是否读到文件末尾
String finalPath;//存储目标文件的路径
FileOutputStream fileOut;//用于写入诸如图像数据之类的原始字节的流

try{
while(true){
System.out.println(
"请输入要复制的文件(包括文件名):");
br
= new BufferedReader(new InputStreamReader(System.in));
copyedPath
= br.readLine();
file
= new File(copyedPath);
if(! file.exists()){
System.out.println(
"文件没有找到,请重新输入");
continue;
}
fileIn
= new FileInputStream(copyedPath);

data
= new Vector<Integer>();
while(! end){
int input = fileIn.read();
if(input == -1){
end
= true;
}
else{
// System.out.print(input+",");//测试用的
data.add(new Integer(input));
}
}
fileIn.close();
//关闭输入流
/* 测试用,查看读入的数据
for(int k=0;k<data.size();k++){
System.out.print(data.get(k).intValue()+",");
if(k%10 == 0){
System.out.println();
}
}
*/
System.out.println(
"请输入复制到的文件路径(不包括文件名):");
//file.getName():返回由此抽象路径名表示的文件或目录的名称。该名称是路径名的名称序列中的最后一个名称。
//如果路径名的名称序列为空,则返回空字符串。
finalPath= br.readLine()+file.getName();
fileOut
= new FileOutputStream(finalPath);
for(int j=0;j<data.size();j++){
fileOut.write(data.get(j).intValue());
}
fileOut.close();
//关闭输出流
}
}
catch(IOException ie){
System.out.println(
"Error:--"+ie.toString());
}
catch(Exception e){
System.out.println(
"Erroe:--"+e.toString());
}
}
}
以上代码只是简单实现了一下,主要是了解这个思想就可以了。

至于实现其他更加详细的功能,比如:将方法封装一下;检测目标文件夹中是否含有目标文件。有的话提示是否覆盖等等,在这里就不一一说了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值