java file类关闭_Java的File类相关知识

Java的File

目录:

1.创建File的文件或者目录的方法....

2.创建File对象的构造器的三种形式...

3.关于分割符的相关知识......................

4.file简单Api介绍...................................

5.遍历目录............................................

1.再说File的时候就不得不先说一下创建文件和目录的三个方法。

<1>createNewFile()必须有已经创建好的路径,才能创建一个文件。返回值:如果指定的文件不存在并成功地创建,则返回true;如果指定的文件已经存在,则返回false

<2>mkdir() 只能在已经存在的目录中创建创建文件夹。(只能创建一个级别的文件夹)

<3>mkdirs() 可以在不存在的目录中创建文件夹。诸如:a\\b,既可以创建多级目录。

2.创建File对象的构造器有三种形式

A.File(String directoryPath)

B.File(String directoryPath, String filename)

C.File(File dirObj, String filename)

在A中的构造函数没什么可说的就是一个路径,(1)如果File的对象调用createNewFile()则会再以最后一个文件名创建一个文件;(2)如果调用mkdir()或者mkdirs()则创建一个目录。

在B中的构造器第一个参数,和第一个的效果一样,但是最后一个参数,(1)当用file对象调用createNewFile()的时候,第二个参数代表的是文件的名字,并且也只能是一个文件名。(2)调用mkdir()的时候第二个参数也只能有路径(3)如果写入第二个参数”javaio\\kc”的形式的话调用mkdirs()就会创建两级菜单javaio->kc。

3.关于分隔符的相关知识

路径分隔符:Windows下是“\”  unix|linux下是“/”

考虑到程序的可移植性,创建文件时建议大家选用"/",因为经过测试用java创建文件时在windows平台下用“/”也是可以的,java貌似在后台作过处理了。

还有一种用法:

用File.separator代替它们,这个永远不会出现可移植性问题。

下面举一些例子,加深理解:

File f = new File("d://book//1");   √

File f = new File("d:/book/1");√

File f = new File("d:\\book\\1");√

File f = new File("d:\book\1");  Χ

注意: \是转义字符,所以\\才相当于\.

总结:推荐大家用"/"或"File.separator"。

4.file简单Api的介绍

这里写两段代码:

1 //创建一个目录的File对象

2

3 File file1=new File("E:/javatest/java");4

5 if(!file1.exists()) {6

7 file1.mkdirs();//创建目录

8

9 }else{10

11 System.out.println("创建的目录已经存在");12

13 }14

15

16

17

18

19 //创建一个文件

20

21 File file2=new File("E:/javatest/java","java.txt");22

23 if(!file2.exists()) {24

25 try{26

27 file2.createNewFile();28

29 } catch(IOException e) {30

31 //TODO Auto-generated catch block

32

33 e.printStackTrace();34

35 }36

37 }else{38

39 System.out.println("创建的文件已经存在");40

41 }42

43 //是否为路径true,,是否为文件false

44

45 System.out.println("是否为路径"+file1.isDirectory());46

47 System.out.println("是否为文件"+file1.isFile());48

49 //是否为路径false,,是否为文件true

50

51 System.out.println("是否为路径"+file2.isDirectory());52

53 System.out.println("是否为文件"+file2.isFile());54

55 //常用的Api56

57 //A.直接输出对象

58

59 System.out.println(file1);//输出的结果为E:\javatest\java,,相当于file1.toString()方法

60

61 System.out.println(file2);//输出的结果为E:\javatest\java\java.txt62

63 //B.输出绝对路径

64

65 System.out.println(file1.getAbsolutePath());//E:\javatest\java

66

67 System.out.println(file2.getAbsolutePath());//E:\javatest\java\java.txt68

69 //C.获取文件的名称

70

71 System.out.println(file1.getName());//输出结果为最后一级的目录Java

72

73 System.out.println(file2.getName());//输出的结果为文件的名称Java.txt74

75 //D.获取父目录

76

77 System.out.println(file1.getParent());//E:\javatest

78

79 System.out.println(file2.getParent());//E:\javatest\java80

81 //效果和获取父目录一样的效果

82

83 System.out.println(file1.getParentFile().getAbsolutePath());

5.遍历目录

file.list() 返回的是 字符串数组 直接子的名称,不包含子目录下的内容,用于;列出当前目录下的子目录和文件

如果要遍历子目录下的内容就需要构造成File对象进行递归操作。

file.listFiles() 返回当前目录下的所有子目录和文件的文件数组名称(注意空文件夹是不会被输出的,输出的最后一级必须是文件)

public static void trvaerseFile(File dir) throwsIOException{if(!dir.exists()) {//检查目录是否存在

throw new IllegalArgumentException("目录"+dir+"不存在");

}if(!dir.isDirectory()) {//检查路径是否存在

throw new IllegalArgumentException("你所输入的路径"+dir+"不是目录类型的路径");

}/*String[] fileName=dir.list();

for (String string : fileName) {

System.out.println("文件夹的路径"+string);

}*/File[] file=dir.listFiles();if(file!=null && file.length>0) {//确定File确实存在,并且有子目录

for(File file2 : file) {if(file2.isDirectory()) {//如果是目录//进行递归地操作

trvaerseFile(file2);

}else {//如果没有子目录就直接打印出来文件

System.out.println(file2);

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值