首页 / JAVA / Java之File类用法总结
Java之File类用法总结
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java之File类用法总结,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5614字,纯文字阅读大概需要9分钟。
内容图文
File类概述:文件和文件目录路径的抽象表达形式,与平台无关。
1.File能新建、删除、重命名文件和目录,但File不能访问文件内容本身。
如果需要访问文件内容本身,则需要使用输入/输出流。
2.想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,
但是Java程序中的一个File对象, 可能没有一个真实存在的文件或目录。
3.File对象可以作为参数传递给流的构造器。
File类的构造方法:
1. pathName: 表示一个文件路径的字符串表示 "d:\\a.txt"
都可以是绝对路径名或相对路径名。
2.绝对路径名是完整的路径名,不需要任何其他信息,
就可以定位它所表示的文件,在unix: 以"/",在windows:以"盘符:\\"
1. 文件路径分隔符:和操作系统有关
在 UNIX 系统上,此字段为 ':';在 Microsoft Windows 系统上,它为 ';'。
windows f:\a.txt;f:\b.txt
2. 名称分隔符
在 UNIX 系统上,此字段的值为 '/';在 Microsoft Windows 系统上,它为 '\\'。
1 public class FileDemo { 2 3 public static void main(String[] args) { 4 5 //user.dir System.getProperty(String key) 6 System.out.println(System.getProperty("user.dir")); 7 8 //关于字符输出 \ 9 System.out.println('\n'); 10 System.out.println('\\'); 11 12 //File (String pathname) 创建File类对象 13 File file = new File("d:\\a.txt"); 14 15 //把文件路径分成了两部分:parent 文件或目录所在的父目录 16 // d:\b.txt => parenet: d:\ + b.txt 17 //File (String parent, Sting child) 18 19 File file1 = new File("d:\\", "b.txt"); 20 21 //File (File parent, String child) 22 File file2 = new File(new File("d:\\"), "b.txt"); 23 24 //假设File类对象,文件目录已经确定 25 //有种特殊情况 26 File supplement = new File("\\test"); //E:\test 27 System.out.println(supplement.getAbsolutePath()); 28 29 } 30 31 public static void testFile(File parent) { 32 33 String fileName = "a.txt"; 34 File file = new File(parent, fileName); 35 } 36 37 }
File类的成员方法:
创建功能:
public boolean createNewFile()
public boolean mkdir()
public boolean mkdirs()
当最后一级目录的父目录,不存在的时候,
mkdir创建失败, 但是mkdirs创建会成功
mkdir vs mkdirs
mkdir:当要创建的目录的父目录不存在的时候,
不会自动创建父目录,然后自动创建目标目录
mkdirs: 可以自动为目标目录创建不存在的父目录
1 public class FileCreateDemo { 2 3 public static void main(String[] args) throws IOException { 4 5 File file = new File("d:\\a.txt"); 6 7 //public boolean createNewFile(); 8 boolean newFile = file.createNewFile(); 9 System.out.println("result = " + newFile); 10 11 //在操作系统中,创建目录 12 //File file1 = new File("d:\\dir\\a"); 13 //boolean mkdir = file1.mkdir(); 14 //System.out.println("result = " + mkdir); 15 16 // mkdirs 17 File file2 = new File("d:\\dir\\a"); 18 boolean mkdirs = file2.mkdirs(); 19 System.out.println("result = " + mkdirs); 20 } 21 }
删除功能:
public boolean delete()
如果此路径名表示一个目录,则该目录必须为空才能删除。
1 public class FileDeleteDemo { 2 3 public static void main(String[] args) { 4 5 //File file = new File("d:\\a.txt"); 6 //boolean delete = file.delete(); 7 //System.out.println("result = " + delete); 8 // 即使文件不存在,也不会抛出异常 9 10 //测试删除目录只能保证删除空目录 11 File dir = new File("d:\\dir"); 12 boolean delete1 = dir.delete(); 13 System.out.println("result = " + delete1); 14 } 15 }
1 public class FileRenameDemo { 2 public static void main(String[] args) { 3 File file = new File("d:\\a.txt"); 4 //File rename = new File("d:\\aaa.txt"); 5 // 6 ////当目标File对象和我们的要改名的File,在同一目录下的时候,则简单的重命名 7 //boolean b = file.renameTo(rename); 8 //System.out.println("result = " + b); 9 10 //如果目标File对象和我们的要改名的File,不在同一目录下,还会实现一个文件移动的功能 11 File rename = new File("e:\\bbb.txt"); 12 boolean b = file.renameTo(rename); 13 System.out.println("result = " + b); 14 } 15 }
File类过滤器接口:
abstract boolean accept(File f) 此过滤器是否接受给定的文件。
当accept返回为true,满足过滤条件 accept方法返回false, 不满足过滤条件。
File[] listFiles(FileFilter filter) 用Filefileter对象,来指明一个对File的一个过滤条件。
ArrayList<File> files 就可以看成是一个可以动态扩容数组,放的是File类型的对象。
1 public class FileFilterDemo { 2 3 public static void main(String[] args) { 4 5 File dir = new File("d:\\dir"); 6 filterTXT(dir); 7 8 //File[] listFiles(FileFilter filter) 9 FileFilter filter = new FileFilter() { 10 @Override 11 public boolean accept(File pathname) { 12 return pathname.getName().endsWith(".txt"); 13 } 14 }; 15 16 File[] files = dir.listFiles(filter); 17 18 for (int i = 0; i < files.length; i++) { 19 //System.out.println(files[i].getName()); 20 } 21 22 //ArrayList<File> files 23 ArrayList<File> files1 = new ArrayList<>(); 24 //通过add方法向,该可以自动扩容的“数组”中存放元素 25 files1.add(new File("test")); 26 27 //输出的时候,输出方法会自动掉啊用每一个对象的toString()方法输出 28 //System.out.println(files1); 29 } 30 31 /* 32 获取执行目录下的 .txt文件信息 33 */ 34 public static void filterTXT(File dir) { 35 // 获取到指定目录下的所有的文件或者目录 36 File[] files = dir.listFiles(); 37 38 //遍历所有的文件或者目录 39 for (int i = 0; i < files.length; i++) { 40 41 if (files[i].isFile()) { 42 //当是文件的时候 43 String name = files[i].getName(); // a.txt 44 // 如果要用split方法分割字符串,'.' 45 String[] split = name.split("\\."); 46 47 if ("txt".equals(split[split.length - 1])) { 48 System.out.println(files[i]); 49 } 50 } 51 } 52 } 53 }
内容总结
以上是互联网集市为您收集整理的Java之File类用法总结全部内容,希望文章能够帮你解决Java之File类用法总结所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。