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