标签:输出流 reader copy put 无法读取 输出 strong jpg 构建
需求:源和目标!
那么我们需要源文件和目标文件!
构建管道的时候就需要两个:输出流和输入流管道!
Eg:
package july7file;
//java7开始的自动关闭资源
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class Demo8 {
public static void main(String[] args) throws IOException {
File src = new File("E:/自荐信.doc");
File tar = new File("E:/自荐信1.doc");
copy(src, tar);
System.out.println("Well done !");
}
public static void copy(File src, File tar) throws IOException {
try (InputStream is = new FileInputStream(src);
OutputStream os = new FileOutputStream(tar);) {
byte[] b = new byte[1024];
int len;
while ((len = is.read(b)) != -1) {
os.write(b);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
题目:复制图片!
package july7file;
/**
* 文件的复制!对于本题而言,因为是图片,所以要想读出来,必须使用字节流!
* 字符流必须关闭资源,而字节流可以不关闭资源!但是还是建议全部的关闭,因为也不会出错,这是关闭资源的习惯!
* 另外:最常用的是字节流,因为字节流在内存中不需要缓冲区,图片,mp3等都是字节流!但是对于文字的话还是字符流比较好;
* 因为字符流可以避免在字节流操作文字时出现的乱码现象(正好读取到了自定义缓冲区的分割处);
*/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
public class Demo7 {
public static void main(String[] args) throws Exception {
File src = new File("D:/java.jpg");
File tar = new File("D:/meinv.jpg");
copy(src,tar);
System.out.println("复制完成!");
}
public static void copy(File src,File tar) throws Exception{
/* Reader r = new FileReader(src);
Writer w = new FileWriter(tar);*/
/*if(!src.exists()){
throw new Exception("对不起,源文件不存在!");
}*/
InputStream in = new FileInputStream(src);
OutputStream os = new FileOutputStream(tar);
byte []c = new byte[1024];
int len;
while((len = in.read(c)) != -1){
os.write(c);
}
/* w.close();
r.close();*/
}
}
我的总结:对于图片的复制,可以使用字符流,但是这样的话文件可以复制成功但是无法读取!
标签:输出流 reader copy put 无法读取 输出 strong jpg 构建
原文地址:https://www.cnblogs.com/fanweisheng/p/11136217.html