JavaIO流的两种拷贝方式及桥转流的基本写法
方法一
package ioTest;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class TestCopy {
public static void main(String[] args) throws Exception {
fileCopy("E:\\file\\b.txt", "E:\\file\\a.txt");
}
public static void fileCopy(String startAddr, String endAddr) throws Exception {
FileInputStream fis = new FileInputStream(startAddr);
FileOutputStream fos = new FileOutputStream(endAddr);
byte[] bs = new byte[1024];
while(true) {
int len = fis.read(bs);
if(len==-1) break;
fos.write(bs,0,len);
}
fis.close();
fos.close();
}
}
方法二添加过滤流的形式
package ioTest;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class Test5Copy{
public static void main(String[] args) throws Exception {
fileCopy("E:\\file\\c.txt", "E:\\file\\d.txt");
}
public static void fileCopy(String startAddr, String endAddr) throws Exception{
FileInputStream fis = new FileInputStream(startAddr);
BufferedInputStream in = new BufferedInputStream(fis);
FileOutputStream fos = new FileOutputStream(endAddr);
BufferedOutputStream out = new BufferedOutputStream(fos);
byte[] bs = new byte[5];
while(true) {
int len = in.read(bs);
if(len == -1)break;
out.write(bs, 0, len);
}
in.close();//闭流必须闭最外层流
out.close();
}
}
桥转流
package io2;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
public class Io2Test3Bridge {
public static void main(String[] args) throws Exception{
//创建字节节点流
FileOutputStream fos = new FileOutputStream("c.txt");
//创建桥转换流
OutputStreamWriter osw = new OutputStreamWriter(fos,"UTF-8");
//创建换缓冲过滤流
PrintWriter pw = new PrintWriter(osw);
//输出数据
pw.println("闺中少妇不知愁");
pw.println("春日凝装上翠楼");
pw.println("忽见陌上杨柳色");
pw.println("悔教夫婿觅封侯");
//关闭流
pw.close();
FileInputStream fis = new FileInputStream("c.txt");
InputStreamReader isr = new InputStreamReader(fis,"UTF-8");
BufferedReader br = new BufferedReader(isr);
while(true) {
String str = br.readLine();
if(str == null) break;
System.out.println(str);
}
}
}