IO流体系结构图

 

字节流复制数据的四种方式:

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 字节流 文件赋值的四种方式
 *
 */
public class FourMethodInOutStream {
    public static void main(String[] args) throws IOException{
        //method1();
        //method2();
        //method3();
        method4();

    }

    /**
     * 基本字节流,一次复制一字节
     */
    private static void method1() throws IOException {
        // TODO Auto-generated method stub
        FileInputStream fis=new FileInputStream("osw.txt");
        FileOutputStream fos =new FileOutputStream("test.txt");

        int b =0;
        while((b = fis.read()) != -1){
            fos.write(b);
        }

        fis.close();
        fos.close();

    }
    /**
     * 基本字节流,一次复制一字节数组
     */
    private static void method2() throws IOException {
        // TODO Auto-generated method stub
        FileInputStream fis=new FileInputStream("osw.txt");
        FileOutputStream fos =new FileOutputStream("test.txt");

        byte bys[] =new byte[1024];
        int len=0;                      //记录一次实际读取到的字符数
        while((len = fis.read(bys)) != -1){
            fos.write(bys,0,len);
        }

        fis.close();
        fos.close();
    }
    
    /**
     * 带缓冲区一次复制一字节
     */
    private static void method3() throws IOException {
        BufferedInputStream bis=new BufferedInputStream(new FileInputStream("osw.txt"));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("test.txt"));

        int b=0;                    
        while((b = bis.read()) != -1){
            bos.write(b);
        }

        bis.close();
        bos.close();
    }

    /**
     * 带缓冲区一次复制一字节数组
     */
    private static void method4() throws IOException {
        // TODO Auto-generated method stub
        BufferedInputStream bis=new BufferedInputStream(new FileInputStream("osw.txt"));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("test.txt"));

        byte[] bys = new byte[1024];
        int len =0;
        while((len = bis.read(bys)) != -1){
            bos.write(bys,0,len);
        }

        bis.close();
        bos.close();
    }

}

 字符流复制数据的五种方式:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/**
 * 字符流复制文件五种方式
 */
public class FiveMethodReaderWriter {
    public static void main(String[] args) throws IOException {
        //method1();
        //method2();
        //method3();
        //method4();
        method5();
    }
    /**
     * 基本字符流,一次复制一个字符
     */
    private static void method1() throws IOException {
        // TODO Auto-generated method stub
        FileReader fr=new FileReader("osw.txt");
        FileWriter fw =new FileWriter("test.txt");

        int b=0;
        while((b = fr.read())!= -1){
            fw.write(b);
        }

        fr.close();
        fw.close();

    }

    /**
     * 基本字符流,一次复制一个字符数组
     */
    private static void method2() throws IOException {
        // TODO Auto-generated method stub

        FileReader fr=new FileReader("osw.txt");
        FileWriter fw =new FileWriter("test.txt");

        char[] b=new char[1024];
        int len=0;
        while((len = fr.read(b))!= -1){
            fw.write(b,0,len);
        }

        fr.close();
        fw.close();

    }

    /**
     * 带缓冲区字符流一次复制一个字符
     */
    private static void method3() throws IOException {
        // TODO Auto-generated method stub
        BufferedReader br=new BufferedReader(new FileReader("osw.txt"));
        BufferedWriter bw = new BufferedWriter(new FileWriter("test.txt"));

        int b=0;
        while((b=br.read())!=-1){
            bw.write(b);
        }
        br.close();
        bw.close();

    }

    /**
     * 带缓冲区字符流,一次复制一个字符数组
     */
    private static void method4() throws IOException{
        // TODO Auto-generated method stub
        BufferedReader br=new BufferedReader(new FileReader("osw.txt"));
        BufferedWriter bw = new BufferedWriter(new FileWriter("test.txt"));

        char[] ch=new char[1024];
        int len=0;
        while((len=br.read(ch))!=-1){
            bw.write(ch,0,len);
        }
        br.close();
        bw.close();
    }
    /**
     * 一次复制一行数据
     */
    private static void method5() throws IOException {
        // TODO Auto-generated method stub
        BufferedReader br=new BufferedReader(new FileReader("osw.txt"));
        BufferedWriter bw=new BufferedWriter(new FileWriter("test.txt"));
        String s=null;

        while((s=br.readLine())!=null){
            bw.write(s);
            bw.newLine();
            bw.flush();

        }
        bw.close();
        br.close();

    }

}
/**
 * 改进版,用打印流写入
 */

                BufferedReader bs = new BufferedReader(new FileReader("fos.txt"));
		PrintWriter pw = new PrintWriter(new FileWriter("fox.txt"),true);
		
		String line = null;
		while((line=bs.readLine())!=null){
			pw.println(line);
		}
		pw.close();
		bs.close();

猜你喜欢

转载自blog.csdn.net/weufengwangshi_/article/details/81506464