Java FileIO文件流读写总结

                                       简述
代码展示
小结
简述
1.其实文件流的读写没有太大难度,但是其中几个概念相似度太高,容易混淆,所以先解释下几个类。

InputStream 和 OutStream  字节流
InputStreamReader 和 OutStreamWriter  字符流(桥梁)
BufferedReader 和 BufferedWriter  把字节或者字符放入缓冲区,提高读写速度

2.要先用字节流来读取或者写入文件,因为可以避免中文乱码。
3.面对存入文件的数据类型不同选取不同的流方式:字节流,字符流,对象流。
4.在读写的时候,要把流放入缓冲区Buffer里,这样可以加快读写速度。
5.可以总结出一般思路:FileInputStream(字节流)--->InputStreamWriter(字符流)--->BufferedWriter(缓冲池).
6.BufferedWriter bw = new BufferedWriter(new InputStreamWriter(new FileInputStream(file, true)));  可以直接用一个语句来表达三者之间的关系。
代码展示


Code   ViewCopyPrint


import java.io.BufferedWriter;   
import java.io.File;   
import java.io.FileNotFoundException;   
import java.io.FileOutputStream;   
import java.io.IOException;   
import java.io.OutputStream;   
import java.io.OutputStreamWriter;   
  
public class TestFileIO  {   
    public static void main(String[] args) {   
        TestFileIO t = new TestFileIO();   
        t.write2file("itobin");   
    }   
       
    public void write2file(String cbuf) {   
        File file = null;//首先定义文件类   
        OutputStream os = null;//定义字节流   
        OutputStreamWriter osw = null;//OutputStreamWriter是字节流通向字符流的桥梁。   
        BufferedWriter bw = null;//定义缓冲区   
           
        try {   
            file = new File("d:\\test.txt"); //新建文件对象   
            //从文件系统中的某个文件中获取字节   
            os = new FileOutputStream(file, true); //true是append设为允许,即可以在原文件末端追加。   
            //将字节流转换成字符流   
            osw = new OutputStreamWriter(os);   
            //把接收到的字符流放入缓冲区,提高读写速度。   
            bw = new BufferedWriter(osw);   
               
            //将字符串以流的形式写入文件   
            bw.write(cbuf);   
        } catch (FileNotFoundException e) {   
            System.out.println("找不到指定文件");   
        } catch (IOException e) {   
            System.out.println("写入文件错误");   
        } finally {   
            try {   
                //关闭文件放到finally里,无论读取是否成功,都要把流关闭。   
                //关闭的顺序:最后开的先关闭,栈的先进后出原理。   
                bw.close();   
                osw.close();   
                os.close();   
            } catch (IOException e) {   
                System.out.println("文件流无法关闭");   
            }   
        }   
    }   
  
}   


以上代码就是把字符串"itobin"写入到d:\test.txt里的过程。
小结
文件流的读写虽没有数据库操作那么重要和常用,但是在一些小型的游戏和程序当中,没有必要动用庞大的数据库的时候,文件的作用就凸现出来了,所以有必要掌握文件流的输入输出。

posted @ 2016-05-19 08:07  会飞的小祥  阅读(942)  评论(0编辑  收藏  举报