1.File 类的字段
//是用来分隔同一个路径字符串中的目录的 System.out.println("目录分隔符:"+File.separator);//输出 //指的是分隔连续多个路径字符串的分隔符 System.out.println("多个路径分隔符:"+File.pathSeparator);//输出 ;
2.File 类的构造方法
package file; import java.io.File; /*** * @ClassName: IO * @Description: TODO * @Auther: chujiu * @Date: 2020/6/8 * @version : V1.0 */ public class IO { public static void main(String[] args) { //不使用 Java 提供的分隔符字段,注意:这样写只能在 Windows 平台有效 File f1 = new File("G:\javabased\JavaTest\java.txt"); //使用 Java 提供的分隔符 File f2 = new File("G:"+File.separator+"javabased"+File.separator+"JavaTest"+File.separator+"java.txt"); System.out.println(f1);//输出 G:javabasedJavaTestjava.txt System.out.println(f2);//输出 G:javabasedJavaTestjava.txt //File(File parent, String child) //从父抽象路径名和子路径名字符串创建新的 File实例。 File f3 = new File("G:"); File f4 = new File(f3,"javabased"); System.out.println(f4); //G:javabased //File(String pathname) //通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。 File f5 = new File("G:"+File.separator+"javabased"+File.separator+"JavaTest"+File.separator+"java.txt"); System.out.println(f5); //G:javabasedJavaTestjava.txt //File(String parent, String child) //从父路径名字符串和子路径名字符串创建新的 File实例。 File f6 = new File("G:","javabased\JavaTest\java.txt"); System.out.println(f6); //G:javabasedJavaTestjava.txt } }
3.File 类的常用方法
①、创建方法
1.boolean createNewFile() 不存在返回true 存在返回false
2.boolean mkdir() 创建目录,如果上一级目录不存在,则会创建失败
3.boolean mkdirs() 创建多级目录,如果上一级目录不存在也会自动创建
②、删除方法
1.boolean delete() 删除文件或目录,如果表示目录,则目录下必须为空才能删除
2.boolean deleteOnExit() 文件使用完成后删除
③、判断方法
1.boolean canExecute() 判断文件是否可执行
2.boolean canRead() 判断文件是否可读
3.boolean canWrite() 判断文件是否可写
4.boolean exists() 判断文件或目录是否存在
5.boolean isDirectory() 判断此路径是否为一个目录
6.boolean isFile() 判断是否为一个文件
7.boolean isHidden() 判断是否为隐藏文件
8.boolean isAbsolute() 判断是否是绝对路径 文件不存在也能判断
④、获取方法
1.String getName() 获取此路径表示的文件或目录名称
2.String getPath() 将此路径名转换为路径名字符串
3.String getAbsolutePath() 返回此抽象路径名的绝对形式
4.String getParent() //如果没有父目录返回null
5.long lastModified() //获取最后一次修改的时间
6.long length() 返回由此抽象路径名表示的文件的长度(以字节为单位)。
7.boolean renameTo(File f) 重命名由此抽象路径名表示的文件。
8.File[] liseRoots() //获取机器盘符(Window中就是所有系统的盘符)
9.String[] list() 返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。
10.String[] list(FilenameFilter filter) 返回一个字符串数组,命名由此抽象路径名表示的目录中满足指定过滤器的文件和目录。
package file; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; /*** * @ClassName: FileMethod * @Description: TODO 文件或者文件夹的方法 * @Auther: chujiu * @Date: 2020/6/8 * @version : V1.0 */ public class FileMethod { public static void main(String[] args) throws IOException { //创建方法 File file1 = new File("G:\javabased\JavaTest\aa"); System.out.println("创建成功了吗?" + file1.createNewFile()); System.out.println("单级文件夹创建成功了吗?" + file1.mkdir()); System.out.println("多级文件夹创建成功了吗?" + file1.mkdirs()); File dest = new File("G:\javabased\JavaTest\a1.txt"); System.out.println("重命名成功了吗?" + file1.renameTo(dest)); //删除方法 File file2 = new File("G:\javabased\JavaTest\a1.txt"); System.out.println("删除成功了吗?" + file2.delete()); file2.deleteOnExit(); //判断方法 File file3 = new File("G:\javabased\JavaTest\a1.txt"); System.out.println("文件或者文件夹存在吗?" + file3.exists()); System.out.println("是一个文件吗?" + file3.isFile()); System.out.println("是一个文件夹吗?" + file3.isDirectory()); System.out.println("是隐藏文件吗?" + file3.isHidden()); System.out.println("此路径是绝对路径名?" + file3.isAbsolute()); //获取方法 File file4 = new File("G:\javabased\JavaTest\a1.txt"); System.out.println("文件或者文件夹得名称是:" + file4.getName()); System.out.println("绝对路径是:" + file4.getPath()); System.out.println("绝对路径是:" + file4.getAbsolutePath()); System.out.println("文件大小是(以字节为单位):" + file4.length()); System.out.println("父路径是" + file4.getParent()); //使用日期类与日期格式化类进行获取规定的时间 long lastmodified = file4.lastModified(); Date data = new Date(lastmodified); SimpleDateFormat simpledataformat = new SimpleDateFormat("YY年MM月DD日 HH:mm:ss"); System.out.println("最后一次修改的时间是:" + simpledataformat.format(data)); //文件或者文件夹的方法 File[] file = File.listRoots(); System.out.println("所有的盘符是:"); for (File item : file) { System.out.println(" " + item); } File filename = new File("G:" + File.separator + "javabased"+ File.separator + "JavaTest" ); String[] name = filename.list(); System.out.println("指定文件夹下的文件或者文件夹有:"); for (String item : name) { System.out.println(" " + item); } File[] f = filename.listFiles(); System.out.println("获得该路径下的文件或文件夹是:"); for (File item : f) { System.out.println(" " + item.getName()); } } }
4.File 的一些技巧
①、在 G:javabasedJavaTest 目录下创建 a.txt
package file; import java.io.File; import java.io.IOException; /*** * @ClassName: IO * @Description: TODO 在 G:javabasedJavaTest 目录下创建 a.txt * @Auther: chujiu * @Date: 2020/6/8 * @version : V1.0 */ public class IO { public static void main(String[] args) throws IOException { //File(File parent, String child) //从父抽象路径名和子路径名字符串创建新的 File实例。 File dir = new File("G:"+File.separator+"javabased"+File.separator+"JavaTest"); File file = new File(dir,"a.txt"); //判断dir 是否存在且表示一个目录 if(!(dir.exists()||dir.isDirectory())){ //如果 dir 不存在,则创建这个目录 dir.mkdirs(); } //根据目录和文件名,创建 a.txt文件 file.createNewFile(); //返回由此抽象路径名表示的文件或目录的名称。 这只是路径名称序列中的最后一个名字。 如果路径名的名称序列为空,则返回空字符串。 System.out.println(file.getName()); //a.txt //返回此抽象路径名的父null的路径名字符串,如果此路径名未命名为父目录,则返回null。 System.out.println(file.getParent());//G:javabasedJavaTest //将此抽象路径名转换为路径名字符串。 结果字符串使用default name-separator character以名称顺序分隔名称。 System.out.println(file.getPath()); //G:javabasedJavaTesta.txt } }
②、打印给定目录下的所有文件夹和文件夹里面的内容
package file; import java.io.File; import java.io.IOException; /*** * @ClassName: IO * @Description: TODO 打印给定目录下的所有文件夹和文件夹里面的内容 * @Auther: chujiu * @Date: 2020/6/8 * @version : V1.0 */ public class IO { public static void getFileList(File file){ //第一级子目录 File[] files = file.listFiles();
for(File f:files){ //打印目录和文件 System.out.println(f); if(f.isDirectory()){ getFileList(f); } } } public static void main(String[] args) throws IOException { File f = new File("G:"+File.separator+"javabased"+File.separator+"JavaTest"); getFileList(f); } }
参考文章:https://www.cnblogs.com/ysocean/tag/Java%20IO%E8%AF%A6%E8%A7%A3%E7%B3%BB%E5%88%97/