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 ^^