Java I/O review

    Java I/O - 1

1、目标
    输入和输出是相对的
2、分类方法
    输入流输出流
    字节流字符流
    节点流处理流
3、读取文件和写入文件的方法
    InputStream和OutputStream都是抽象类
    其子类FileInputStream和FileOutputStream不是抽象的
    
InputStream:
    int read(byte[]b,int offset,int length) //字节数组
                                            //从offset开始读取数据
                                            //length表示总共读取多少字节的数据
    read方法返回的是本次读取的数据总数
OutputStream:
    void write(byte[]b,int offset,int length)//向文件里写入比特数组
                                             //从offset开始写入
                                             //length表示总共写多少字节的数据
                                                                                  
    FileInputStream("文件地址");//用于读取文件中的数据
    FileOutputStream("文件地址");
    
---------------------------------------------------------------------------------    
    Java I/O - 2
    1、大文件读写方法
            offset和length都是相对于buffer的
            FileInputStream或FileReader的值为-1时表示已经读取完毕了,可以将此作为
        判断文件读取循环的条件
        while(true){
            ...
            if(temp==-1)
                break;
        }
    2、字符流使用方法(类似字节流)
        read方法也要进行捕获
        fr = new FileReader("d:/temp/from.txt");
        fw = new FileWriter("d:/temp/to.txt");
        ...
        注意要对close方法进行捕获,否则可能出不来结果,close放在finally中确保一定执行。
---------------------------------------------------------------------------------    
    Java I/O - 3 - 节点流&处理流
    
    public String readline()
            throwsIOException
            
    BufferedReader in = new BufferedReader(new FileReader("foo.in"));    
    
##    装饰者设计模式
    
    AWorker.class称为装饰者
    Plumber和Carpenter称为被装饰者
    
    被装饰者对象作为参数传递到装饰者中

    fileReader采用的就是装饰者模式,是装饰者类,提供了单行读取的功能
    
    处理流给节点流添加新的功能 
      
    
    
    
__________________________________________________________ shoobie do lang lang ^^
原文地址:https://www.cnblogs.com/annaivsu/p/3564884.html