----------------------ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
一.流的相关概念
1.流的定义
I/O流提供一条通道程序,可以使用这条通道把源中的字节序列送到目的地。把输入流的指向称为源,程序从指向源的输入流中读取源中的数据。而输出流的指向是数据要
到达的一一个目的地,程序通过向输出流中写入数据把信息传递到目的地。虽然I/O流经常与磁盘文件存取有关,但是程序的源和目的地也可以是键盘、鼠标、内存或显示器窗口。
Java的I/O流库提供大量的流类(在包java.io中)o其中,所有输入流类都是抽象类InputStream(字节输入流)或抽象类Reader(字符输入流)的子类,而所有输出流都是抽象类OutputStream(字节输出流)或抽象类Writer(字符输出流)的子类。把输入流的指向称为源,程序从指向源的输入流中读取源中的数据。而输出流的指向是数据要到达的一个目的地,程序通过向输出流中写入数据把信息传递到目的地,如下图所示:
2.流的分类:
1)按流向分为输入流和输出流;
2)按传输单位分为字节流(InputStream和OutputStream)和字符流(Reader和Writer);
3)按功能还可以分为节点流和过滤流。
节点流:负责数据源和程序之间建立连接;(相当于裸枪)
过滤流:用于给节点增加功能。(相当于功能零部件)
过滤流的构造方式是以其他流位参数构造(这样的设计模式称为装饰模式)。
注:I/O流是一类很宝贵的资源,使用完后必须调用close()方法关闭流并释放资源。在关闭流时只用关闭最外层的流。
二.File类
File类的对象主要用来获取文件本身的一些信息,例如文件所在的目录、文件的长度、文件读写权限等,不涉及对文件的读写操作。
创建一个File对象的构造方法有3个:
File (String filename);
File (String directoryPath, String filename);
File (File f, String filename);
其中,filename是文件名字,directoryPath是文件的路径.f是指定成一个目录的文件。
使用File(String filename)创建文件时,该文件被认为是与当前应用程序在同一目录中。
1.文件的属性
经常使用File类的下列方法获取文件本身的一些信息:
◆ public String getName()获取文件的名字。
◆ public boolean canRead()判断文件是否是可读的。
◆ public boolean canWrite()判断文件是否可被写入。
◆ public boolean exits() 判断文件是否存在。
◆ public long length()获取文件的长度(单位是字节)。
◆ public String getAbsolutePath()获取文件的绝对路径。
◆ public String getParcnt()获取文件的父目录。
◆ public boolean isFile()判断文件是否是一个正常文件,而不是目录。
◆ public boolean isDirectory()判断文件是否是一个目录。
◆ public boolean isHidden() 判断文件是否是隐藏文件。
◆ public long lastModified()获取文件最后修改的时间(时间是从1970年午夜至文件最后修改时刻的毫秒数)。
代码示例:
- public class FileDemo1 {
- /**使用上述的一些方法,获取某些文件的信息
- * @黑马ZWF
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- File f1 = new File("G:\\新建文件夹(2)","FileDemo1.java");