JAVA IO 流小结

来源:互联网 发布:json fromobject jar 编辑:程序博客网 时间:2024/04/28 16:58

字节流(InputStream,OutputStream)

字符流(Writer,Reader)

如是要复制一个文件,这个文件是一个文本文件话,则可以采用字符流各字节流都可以,否则只能用字节流,字节流复制文件常用的四种方式,

/*    方式一:一次读一个字节*private static void Method1() throws IOException {        // TODO Auto-generated method stub        File file = new File("d:\\src.txt");        FileInputStream fis = new FileInputStream(file);        FileOutputStream fos  = new FileOutputStream("d:\\des.txt");        int i = 0;        while((i = fis.read()) != -1){            fos.write(i);        }        fis.close();        fos.close();    }
/**     * 方式二:一次读写一个字节数组     * @throws Exception      */    private static void Method2() throws Exception {        // TODO Auto-generated method stub        File file = new File("d:\\src.txt");        FileInputStream fis = new FileInputStream(file);        FileOutputStream fos  = new FileOutputStream("d:\\des.txt");        byte bytes[] = new byte[1024];        int len = 0;        while((len = fis.read(bytes)) != -1){            fos.write(bytes, 0, len);        }        fis.close();        fos.close();    }
/**方式三:     * 使用BufferedInputStream和BufferedOutputStream  一次读写取一个字节     * @throws Exception     */    private static void Method3() throws Exception {        // TODO Auto-generated method stub        File file  = new File("d:\\src.txt");        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("d:\\des.txt"));        int i = 0;        while((i=bis.read()) != -1){            bos.write(i);        }        bos.flush();        bis.close();        bos.close();    }
    /**     * 方式四: 使用BufferedInputream 和 BufferedOutputStream 一次读写一个字节数组     * @throws Exception     */    private static void Method4() throws Exception {        // TODO Auto-generated method stub        // TODO Auto-generated method stub        File file = new File("d:\\src.txt");        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("d:\\des.txt"));        int len = 0;        byte bytes[] = new byte[1024];        while ((len = bis.read(bytes)) != -1) {            bos.write(bytes,0,len);        }        bos.flush();        bis.close();        bos.close();    }

以上就是字节流复制这件的四种方式


而使用字符流来复制这个文本文件的话,则有五种方式:

    /**     * 方式一:使用FileRead 和 FileWriter 一次读写一个字符     * @throws Exception     */    private static void Method1() throws Exception {        // TODO Auto-generated method stub        File file = new File("d:\\src.txt");        FileWriter fw = new FileWriter("d:\\des.txt");        FileReader fr = new FileReader(file);        int i;        while((i = fr.read()) != -1){            fw.write(i);        }        fw.close();        fr.close();    }
    /**     * 方式三使用 BufferedReader 和  BufferedWriter (缓存技术) 一次读写一个字符     * @throws Exception     */    private static void Method3() throws Exception {        // TODO Auto-generated method stub        File file = new File("d:\\src.txt");        BufferedReader br = new BufferedReader(new FileReader(file));         BufferedWriter bw = new BufferedWriter(new FileWriter("d:\\des.txt"));        int i = 0;        while((i = br.read()) != -1){            bw.write(i);        }        bw.flush();        br.close();        bw.close();    }
    /**     * 方式四使用 BufferedReader 和  BufferedWriter (缓存技术) 一次读写一个字符数组     * @throws Exception     */    private static void Method4() throws Exception {        // TODO Auto-generated method stub        // TODO Auto-generated method stub        File file = new File("d:\\src.txt");        BufferedReader br = new BufferedReader(new FileReader(file));         BufferedWriter bw = new BufferedWriter(new FileWriter("d:\\des.txt"));        int len=0;        char c[] = new char[1024];        while((len = br.read(c)) != -1){            bw.write(c, 0, len);        }        bw.flush();        br.close();        bw.close();    }
    /**     * 方式五使用 BufferedReader 和  BufferedWriter (缓存技术) 一次读写一行(以\r结末)数据     * @throws Exception     */    private static void Method5() throws Exception {        // TODO Auto-generated method stub        File file = new File("d:\\src.txt");        BufferedReader br = new BufferedReader(new FileReader(file));         BufferedWriter bw = new BufferedWriter(new FileWriter("d:\\des.txt"));        String str="";        while((str = br.readLine()) != null){            bw.write(str);;            bw.newLine();        }        bw.flush();        br.close();        bw.close();

数据操作流:

DataInputStream /DataOutputStream


内存操作流:

ByteArrayInputStream

CharArrayInputStream

StringReader/StringWriter


和并流:
SequenceInputStream


序列化流:
ObjectInputStream


Properties

1 0
原创粉丝点击