java file的用法_Java之File类用法总结

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:.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( );

10 System.out.println(\);

11

12 //File (String pathname) 创建File类对象

13 File file = new File("d:\a.txt");

14

15 //把文件路径分成了两部分:parent 文件或目录所在的父目录

16 // d:.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: est

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 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 files

23 ArrayList 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,System,用法,File,println,new,txt,public

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:.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( ); 10 System.out.println(\); 11 12 //File (String pathname) 创建File类对象 13 File file = new File("d:\a.txt"); 14 15 //把文件路径分成了两部分:parent 文件或目录所在的父目录 16 // d:.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: est 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 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 files 23 ArrayList 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,System,用法,File,println,new,txt,public
经验分享 程序员 微信小程序 职场和发展