File类
File类常用方法
– String getName() 返回文件名
– String getPath()
– String getAbsolutePath()
– String getParent() 返回父目录名
– boolean renameTo( File newName)
– long length()
– boolean delete()
– boolean mkdir() 根据抽象路径名创建目录
– String[] list() 返回抽象路径名表示路径中的文件名和目录名
– boolean exists() 在文件存在的情况下返回true,反之返回false
– boolean canWrite()
– boolean canRead()
– boolean isFile()
– boolean isDirectory()
示例程序
FileTest1.java
package com.fairy.io; import java.io.File; import java.io.IOException; public class FileTest1 { public static void main(String[] args) { File file1 = new File("C:\\text1.txt"); File file2 = new File("C:/text2.txt"); File file3 = new File("C:" + File.separator + "text3.txt"); try { System.out.println(file1.createNewFile()); System.out.println(file2.createNewFile()); System.out.println(file3.createNewFile()); } catch (IOException e) { e.printStackTrace(); } } }
FileTest2.java
package com.fairy.io; import java.io.File; import java.io.IOException; public class FileTest2 { public static void main(String[] args) { File file = new File("C:/abc/xyz"); File file2 = new File(file, "text.txt"); File file3 = new File("C:/abc/xyz", "text2.txt"); try { file2.createNewFile(); file3.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } }
FileTest3.java
package com.fairy.io; import java.io.File; public class FileTest3 { public static void main(String[] args) { File file = new File("C:/abc/xyz/hello"); System.out.println(file.mkdir()); System.out.println(file.isDirectory()); System.out.println(file.isFile()); File file1 = new File("C:/abc/abc/abc"); System.out.println(file1.mkdir()); System.out.println(file1.mkdirs()); } }
FileTest4.java
package com.fairy.io; import java.io.File; public class FileTest4 { public static void main(String[] args) { File file = new File("D:/Util"); String[] names = file.list(); for (String name : names) { System.out.println(name); } System.out.println(); File[] files = file.listFiles(); for (File f : files) { System.out.println(f.getName()); } } }
FileTest5.java
package com.fairy.io; import java.io.File; public class FileTest5 { public static void main(String[] args) { File file = new File("C:/abc/xyz"); String[] names = file.list(); for (String name : names) { if (name.endsWith(".java")) { System.out.println(name); } } } }
使用FilenameFilter
– 希望能够限制由list( )方法返回的文件数目,使它仅返回那些与一定的文件名方式或者过滤(filter)相匹配的文件。为达到这样的目的,必须使用list( )的第二种形式 (方法重载)
– String[ ] list(FilenameFilter FFObj)
– 该形式中,FFObj是一个实现FilenameFilter接口的类的对象
FilenameFilter仅定义了一个方法,accept( )。该方法被列表中的每个文件调用一次。它的通常
形式如下:
boolean accept(File directory, String filename)
当被directory 指定的目录中的文件(也就是说,那些与filename 参数匹配的文件)包含在列表中时,accept( )方法返回true ,当这些文件没有包括在列表中时,accept( )返回false
FileTest6.java
package com.fairy.io; import java.io.File; import java.io.FilenameFilter; public class FileTest6 { public static void main(String[] args) { File file = new File("C:/abc/xyz"); String[] names = file.list(new FilenameFilter() { @Override public boolean accept(File dir, String name) { if (name.endsWith(".java")) { return true; } return false; } }); for (String name : names) { System.out.println(name); } } }