java问题
我通过java编写了一个程序,想通过数组方式把一个图片文件复制到另一个盘,但总实现不了,以下是我的代码,求大神帮忙解决下importjava.io.FileInputSt...
我通过java编写了一个程序,想通过数组方式把一个图片文件复制到另一个盘,但总实现不了,以下是我的代码,求大神帮忙解决下
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyFile1 {
public static void main(String[] args) throws IOException{
// TODO 自动生成的方法存根
FileInputStream fis = new FileInputStream("e:\\psb.jpg");
FileOutputStream fos = new FileOutputStream("d:\\a.jpg");
byte[] b = new byte[1024];
int fs = 0;
while((fs=fis.read())!=-1){
fos.write(fs);
}
fis.close();
fos.close();
}
} 展开
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyFile1 {
public static void main(String[] args) throws IOException{
// TODO 自动生成的方法存根
FileInputStream fis = new FileInputStream("e:\\psb.jpg");
FileOutputStream fos = new FileOutputStream("d:\\a.jpg");
byte[] b = new byte[1024];
int fs = 0;
while((fs=fis.read())!=-1){
fos.write(fs);
}
fis.close();
fos.close();
}
} 展开
展开全部
你这是对api不熟悉的原因,也没有查看具体api文档,所以有这个问题,修改了你的
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("e:\\psb.jpg");
FileOutputStream fos = new FileOutputStream("d:\\a.jpg");
byte[] b = new byte[1024];
int fs = 0;
// fis.read() 只是读取1 byte
// fis.read(byte[] b) 就是读取b.length 个byte
while ((fs = fis.read(b)) != -1) {
// write(int a) 只是写入了整数a的值,并不是你想的写入a个byte
fos.write(b, 0, fs);
}
fis.close();
fos.close();
}
追问
谢谢哦
展开全部
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.imageio.ImageIO;
//两种都可以
public class Testzhidao {
public static void main(String args[]) throws IOException{
BufferedImage image = ImageIO.read(new File("e:/1.jpg"));
ImageIO.write(image, "jpg", new File("e:/3.jpg"));
FileInputStream in = new FileInputStream("e:/1.jpg");
byte[] cont = new byte[102400];
int len = in.read(cont);
in.close();
FileOutputStream out = new FileOutputStream("e:/2.jpg");
out.write(cont, 0, len);
out.flush();
out.close();
}
}
追问
你给我的太深奥了,我看不懂哦,我是初学者,不过还是谢谢你
追答
我是用了两种方式而已。。。我晕。。现在都怎么回事
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询