文件类(File)
文件类(File)提供了一些方法可以用来操作文件和获取文件的信息,包括:更改文件名、删除文件、列出目录下的文件以及文件对象属性的描述信息等。
注意:Java把目录当做一种特殊的文件来处理。
构造方法
public File(String path);
public File(String path,String name);
public File(File parent,String chile);
File file1=new File(“demo.txt”);//当前文件夹下的文件
File file2=new File(“c:/demo1.txt”);//绝对路径
File file3=new File(“c:/exmple”);//example是文件还是目录?
File file4=new File(“c:/example”,”demo.txt”);
File file5=new File(file3,”demo.txt”);
File file6=new File(file3,”test”);
静态常量
由于不同操作系统的文件分隔符以及路径分隔符不同,因此,如果要获取当前系统的文件和路径的分隔符,可使用以下两个静态常量。
public static final char separatorChar;
public static final String separator;
例如,File file = new File("c:"+File.separator+"abc"+File.separator+"a.txt");
常用方法
访问文件对象
public String getName() //返回文件对象名,不包含路径名
public String getPath() //File对象中封装的路径是什么,获取的就是什么
public String getAbsolutePath() //返回绝对路径名,包含文件名
public String getParent() //返回父文件对象的路径名,如果封装的是相对路径,返回null
public File getParentFile() //返回父文件对象
获得文件属性
public long length() //返回文件的字节长度
public boolean exists() //测试指定的文件是否存在
public long lastModified() //返回文件最后被修改的时间
文件操作
public boolean renameTo(Filedest) //文件重命名
public boolean delete() //删除空目录或文件
目录操作
public boolean mkdir () //创建目录,正常建立时返回true
public String[] list() //返回目录中的所有文件名字符串
public File[] listFiles() //返回目录中的所有文件对象
实例,列出指定目录下的文件以及子文件夹中的文件。
分析:需要使用递归—方法自己调用自己。
注意:使用递归时,一定要有递归的终止条件,并且调用次数也不要过多,否则会出现内存溢出。
补充--文件过滤器
FileFilter和FilenameFilter接口
FileFilter接口:用于抽象路径名的过滤器。此接口的实例可传递给 File 类的 listFiles(FileFilter) 方法。
成员方法: boolean accept(File pathname)
测试指定抽象路径名是否应该包含在某个路径名列表中。
FilenameFilter接口:实现此接口的类实例可用于过滤器文件名。Abstract Window Toolkit 的文件对话框组件使用这些实例过滤 File 类的 list 方法中的目录清单。
成员方法:boolean accept(File dir,String name)
测试指定文件是否应该包含在某一文件列表中。
RandomAccessFile类可以对文件进行随机读写操作。
构造方法—该对象只能对文件进行操作
RandomAccessFile(File file,String mode) ;
RandomAccessFile(String name,String mode);
读写数据的常用方法
读、写基本数据类型: readInt()、writeInt(int n)等;
读、写UTF字符串: readUTF()、writeUTF(String str);
读取文件中的一行: readLine();
文件随机读写流的读取指针控制
long getFilePointer() ---得到当前的文件读取指针。
void seek(long pos) ---把指针从开始移动到pos位置。
long length() ---得到文件的长度(有多少个字节) 。
void setLength(long newLength