File类
1、File类是I/O包中唯一代表磁盘文件本身信息的类,而不是文件中的内容
2、File类定义了一些与平台无关的方法来操纵文件。例如:创建、删除文件和重命名文件
3、java中的目录被当作一种特殊的文件使用
4、list方法可以返回目录中的所有子目录和文件名
5、在UNix下的路径分隔符为(/),在DOS下的路径分隔符为(/),java可以正确处理UNIX和Dos的路径分隔符。
RandomAccessFile类
1、RandomAccessFile类提供了众多的文件访问方法
2、RandomAccessFile类支持“随机访问”方式
3、RandomAccessFile类在随机(相对于顺序而言)读写等长记录格式的文件时有很大的优势
4、RandomAccessFile类仅限于操作文件,不能访问其他的IO设备,如网络、内存映像等。
5、两种构造方法:
——new RandomAccessFile(f,"rw") //读写方式
——new RandomAccessFile(f,"r") //只读方式
节点流
理解节点流的概念:
1、流是字节序列的抽象概念
2、文件是数据的静态存储形式,而流是指数据传输时的形态
3、流类分为两个类:节点流类和过滤流类(也称为处理流类)
InputStream类
程序可以从中连续读取字节的对象叫输入流,在java中,用InputStream类来描述所有输入流的抽象概念。
FileInputStream与FileOutputStream类
1、分别用类创建磁盘文件的输入流和输出流对象,通过它们的构造数类指定文件路径和文件名
2、创建FileInputStream实例对象时,指定的文件应当是存在和可读的,创建FileOutputStream实例对象时,如果指定的文件已经存在,这个文件中的原来的内容覆盖清除。
3、对同一磁盘文件创建FileInputStream对象的两种方式;
1、——FileInputStream inOne = new FileInputStream("Hello.test");
2、——File f = new File("hello.test");
——FileInputStream inTwo = new FileInputStream(f);
4、创建FileOutputStream实例对象时,可以指定还不存在的文件名,不能指定一个已被其他应用程序打开了的文件、
PipedInputStream 与PipedOutputStream类
PipedInputStream 与PipedOutputStream类用于在应用程序中创建管道通信
PiedWrite类而后PipedReader类
使用管道流,可以实现各个程序模块之间的松耦合
字节输入流和字符输入流类
Decorator设计模式
在程序中用一个对象(the Decorator)包装另外的一个对象,这是一种被称为Decorator的设计模式。
为什么使用Decorator
我们通常可以使用继承来实现功能的拓展,如果这些需要拓展的功能的种类很繁多,那么势必生产很多子类,增加系统的复杂性,同时,使用继承实现功能拓展,我们必须可预见这些拓展功能,这些功能是编译时就确定了是静态的。
使用Decorator 的理由是:这些功能需要有用户动态决定加入的方式和时机,Decorator提供了“即插即用”的方法,在运行期间决定何时增加何种功能。