类File1.publicstaticfinalStringseparator与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。此字符串只包含一个字符,即separatorChar。2.publicFile(Stringpathname)通过将给定路径名字符串转换为抽象路径名来创建一个新File实例。如果给定字符串是空字符串,那么结果是空抽象路径名。3.publicFile(Stringparent,Stringchild)根据parent路径名字符串和child路径名字符串创建一个新File实例。Paren为一个目录,先使用file.mkdir()来创建这个目录才能创建child文件4.publicFile(Fileparent,Stringchild)根据parent抽象路径名和child路径名字符串创建一个新File实例。5.publicbooleanisFile()测试此抽象路径名表示的文件是否是一个标准文件。6.publicbooleancreateNewFile()throwsIOException当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件7.publicbooleandelete()删除此抽象路径名表示的文件或目录。如果此路径名表示一个目录,则该目录必须为空才能删除。返回:当且仅当成功删除文件或目录时,返回true;否则返回false8.publicString[]list()返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录9.publicbooleanmkdir()创建此抽象路径名指定的目录。返回:当且仅当已创建目录时,返回true;否则返回false10.publicbooleanmkdirs()创建此抽象路径名指定的目录,包括所有必需但不存在的父目录11.publicFile[]listFiles()返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。12.publicStringgetName()返回由此抽象路径名表示的文件或目录的名称。该名称是路径名名称序列中的最后一个名称。如果路径名名称序列为空,则返回空字符串。13.publicStringgetParent()返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回null。14.publicbooleanendsWith(Stringsuffix)测试此字符串是否以指定的后缀结束。15.publicbooleandelete()删除此抽象路径名表示的文件或目录。如果此路径名表示一个目录,则该目录必须为空才能删除。返回:当且仅当成功删除文件或目录时,返回true;否则返回falseIO流1.从流结构上可分为字节流(以字节为处理单位或称面向字节)和字符流(以字符为处理单位或称面向字符)。2.字节流的输入流和输出流基础是InputStream和OutputStream这两个抽象类,字节流的输入输出操作由这两个类的子类实现。字符流输入输出的基础是抽象类Reader和Writer3.4.输入流:把外部数据(如磁盘中的文件)通过输入流写到程序中,供程序所用的流。5.InputStream类6.FileInputStream类:用于处理文件的字节输入流读数据的逻辑为:openastreamwhilemoreinformationreadinformationclosethestream7.三个基本的读方法Abstractintread():读取一个字节数据,并返回读到的数据,如果返回-1,表示读到了输入流的末尾。intread(byte[]b):将数据读入一个字节数组,同时返回实际读取的字节数。如果返回-1,表示读到了输入流的末尾。intread(byte[]b,intoff,intlen):将数据读入一个字节数组,同时返回实际读取的字节数。如果返回-1,表示读到了输入流的末尾。off指定在数组b中存放数据的起始偏移位置;len指定读取的最大字节数。publicString(byte[]bytes,intoffset,intlength)通过使用平台的默认字符集解码指定的byte子数组成String对象。参数:bytes-要解码为字符的byteoffset-要解码的第一个byte的索引length-要解码的byte数过滤流与节点流节点流:从特定的地方读写的流类直接和文件打交道,例如:磁盘或一块内存区域。过滤流:使用节点流作为输入或输出。过滤流是使用一个已经存在的输入流或输出流连接创建的。类FilterInputStream:(过滤流)publicclassFilterInputStreamextendsInputStreamFilterInputStream包含其他一些输入流,它将这些流用作其基本数据源,它可以直接传输数据或提供一些额外的功能。FilterInputStream类本身只是简单地重写那些将所有请求传递给所包含输入流的InputStream的所有方法。FilterInputStream的子类可进一步重写这些方法中的一些方法,并且还可以提供一些额外的方法和字段。7.输出流:把程序要输出的数据通过输出流中输出去(如:写到磁盘中)。8.类OutputStreamabstractvoidwrite(intb):往输出流中写入一个字节。voidwrite(byte[]b):往输出流中写入数组b中的所有字节。voidwrite(byte[]b,intoff,intlen):往输出流中写入数组b中从偏移量off开始的len个字节的数据.voidflush():刷新输出流,强制缓冲区中的输出字节被写出。voidclose():关闭输出流,释放和这个流相关的系统资源。写数据的逻辑为:openastreamwhilemoreinformationwriteinformationclosethestream在InputStream类和OutputStream类子类中,FilterInputStream和FilterOutputStream过滤流抽象类又派生出DataInputStream和DataOutputStream数据输入输出流类等子类。过滤流的主要特点是在输入输出数据的同时能对所传输的数据做指定类型或格式的转换,即可实现对二进制字节数据的理解和编码转换。•数据输入流DataInputStream中定义了多个针对不同类型数据的读方法,如readByte()、readBoolean()、readShort()、readChar()、readInt()、readLong()、readFloat()、readDouble()、readLine()等。•数据输出流DataOutputStream中定义了多个针对不同类型数据的写方法,如writeByte()、writeBoolean()、writeShort()、writeChar()、writeInt()、writeLong()、writeFloat()、writeDouble()、writeChars()等。类FilterInputStream和FilterOutputStream分别作为所有过滤输入流和输出流的父类。FileInputStream和FileOutputStream节点流,用于从文件中读取或往文件中写入字节流。如果在构造FileOutputStream时,文件已经存在,则覆盖这个文件。•BufferedInputStream和BufferedOutputStream过滤流,需要使用已经存在的节点流来构造,提供带缓冲的读写,提高了读写的效率。•DataInputStream和DataOutputStream过滤流,需要使用已经存在的节点流来构造,提供了读写Java中的基本数据类型的功能。•PipedInputStream和PipedOutputStream管道流,用于线程间的通信。一个线程的PipedInputStream对象从另一个线程的PipedOutputStream对象读取输入。要使管道流有用,必须同时构造管道输入流和管道输出流。ByteArrayInputStream是把字节数组当成源的输入流。该类有两个构造方法,每个构造方法需要一个字节数组提供数据源.–ByteArrayInputStream(bytearray[])–ByteArrayInputStream(bytearray[],intstart,intnumBytes)–这里,array是输入源。第二个构造方法创建了一个InputStream类,该类从字节数组的子集生成,以start指定索引的字符为起点,长度由numBytes缓冲输入/输出是一个非常普通的性能优化。publicbyte[]toByteArray()创建一个新分配的byte数组。其大小是此输出流的当前大小,并且缓冲区的有效内容已复制到该数组中。返回:以byte数组的形式返回此输出流的当前内容。Java的BufferedInputStream类允许把任何InputStream类“包装”成缓冲流并使它的性能提高•BufferedInputStream有两个构造方法–BufferedInputStream(InputStreaminputStream)–BufferedInputStream(InputStreaminputStream,intbufSize)–第一种形式创建BufferedInputStream流对象并为以后的使用保存InputStream参数in,并创建一个内部缓冲区数组来保存输入数据。–第二种形式用指定的缓冲区大小size创建BufferedInputStream流对象,并为以后的使用保存InputStream参数in。缓冲输入/输出是一个非常普通的性能优化。Java的BufferedInputStream类允许把任何InputStream类“包装”成缓冲流并使它的性能提高BufferedInputStream有两个构造方法–BufferedInputStream(InputStreaminputStream)–BufferedInputStream(InputStreaminputStream,intbufSize)–第一种形式创建BufferedInputStream流对象并为以后的使用保存InputStream参数in,并创建一个内部缓冲区数组来保存输入数据。–第二种形式用指定的缓冲区大小size创建BufferedInputStream流对象,并为以后的使用保存InputStream参数in。–writeTo():将此字节数组输出流的全部内容写入到指定的输出流参数中–reset():将此字节数组输出流的count字段重置为零,从而丢弃输出流中目前已累积的所有输出。通过重新使用已分配的缓冲区空间,可以再次使用该输出流publicvoidmark(intreadlimit):在此输入流中标记当前的位置。对reset方法的后续调用会在最后标记的位置重新定位此流,以便后续读取重新读取相同的字节–publicvoidreset():将此流重新定位到对此输入流最后调用mark方法时的位置.装饰模式又名包装(Wrapper)模式1.装饰模式可以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案2.装饰模式以对客户透明的方式动态的给一个对象附加上更多的责任。换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同。3.装饰模式可以在不创造更多子类的情况下,将对象的功能加以扩展。4.装饰模式把客户端的调用委派到被装饰类。装饰模式的关键在于这种扩展完全是透明的。5.装饰模式是在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。装饰模式的角色:–抽象构件角色(Component):给出一个抽象接口,以规范准备接收附加责任的对象。–具体构件角色(ConcreteComponent):定义