1.输入即从数据源当中读取数据,输出即将数据写入到数据目的地当中
输入可以从文件、键盘、网络、触摸屏、扫描仪等中得到,输出也可以输出到文件、屏幕、网络、打印机……
数据的来源是多种多样的,数据的出口(目的地)也是多种多样的
有数据进入到程序里叫做输入,程序写到别的地方去叫做输出,入和出相对于java程序本身
2.io的分类
第一种分法:输入流、输出流;第二种分法:字节流、字符流;第三种分法:节点流、处理流
3.I/O当中的核心类(字节流的):InputStream、OutputStream 它们是所有字节流的父类,都是抽象类,生成对象要用子类,最常用的子类是FileInputStream(从硬盘文件中读取数据)、FileOutputStream(将数据写入硬盘文件)
4.读取大文件:写成循环
5.在finally中关闭流
6.I/O当中的核心类(字符流的):输入Reader 常用子类FileReader,输出Writer 常用子类FileWriter
FileReader常用方法int read(char[] c,int off,int len) FileWriter常用方法int write(char[] c,int off,int len)
c是接收/储存字符的数组,off为偏移量(从几个值之后开始储存,常为0),len为读取的长度(read常为c.length(),write常为temp=fr.read(......))
7.处理流BufferedReader,接收参数为Reader类型的对象
其中一个方法public String readLine():一次性读取一行
读取所有行:
String line=null;
while(true){
line=bufferedReader.readLine();
if(line==null){
break;
}
System.out.println(line);
}
8.装饰者模式
class Aworker implements Worker{
private Worker worker;
public AWorker(Worker worker){
this.worker=worker;
}
public void doSomeWork(){
System.out.println("hello");
worker.doSomeWork();
}
}