好记性不如赖笔头……
package com.Ckinghan.outputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/**
* @author Ckinghan
* @描述:字节流的文件COPY,字符流能做到的文件COPY,字节流都可以做去,但字节流能做的,字符不一定能做到
*/
public class OutputStreamFileCopy {
public static void main(String[] args) {
/**
* 字符型文件的COPY
*/
stringFileCopy();
/**
* 复制图片
*/
imageFileCopy();
}
/**
* @描述:图片的复制
* @创建时间:
*/
public static void imageFileCopy(){
//创建流对象
InputStream inputStream = null;
OutputStream stream = null;
try {
//实例化流对象
inputStream = new FileInputStream("e:/timg.jpg");
stream = new FileOutputStream("E:/new.jpg");
//接收读取的字节长度
int len = -1;
//接收读取的字节
byte[] bs = new byte[1024];
//循环读取字节
while((len = inputStream.read(bs)) != -1){
//将读取的字节写入到文件中
stream.write(bs, 0, len);
}
System.out.println("图片文件复制完毕");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
//关闭输出流
if(stream != null)
stream.close();
//关闭输入流
if(inputStream != null)
inputStream.close();
} catch (IOException e2) {
e2.printStackTrace();
}
}
}
/**
* @描述:字符型文件的COPY
* @创建时间:
*/
public static void stringFileCopy(){
//创建字节的输出、输出流
InputStream inputStream = null;
OutputStream outputStream = null;
try {
//实例化字节输入、输出流
inputStream = new FileInputStream("src/com/Ckinghan/CollectionDemo/ParamsComparator.java");
outputStream = new FileOutputStream("OutputFileCopy.java");
//创建读取字节保存的变量
byte[] bs = new byte[1024];
//创建读取的字节数量变量
int len = -1;
//循环读取文件数据
while ((len = inputStream.read(bs)) != -1) {
//写入文件
outputStream.write(bs, 0, len);
}
System.out.println("字符文件COPY完毕");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
//如果输出、输入字节流有创建,则关闭,注意关闭顺序,先关输出流再关输入流
try {
if(outputStream != null)
outputStream.close();
if(inputStream != null)
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}