file创建文件和文件夹路径

File file = new File("路径名") 路径名的2种写法

/**
 *mkdir:只能用来创建文件夹,且只能创建一级目录,如果上级不存在,就会创建失败。
 mkdirs:只能用来创建文件夹,且能创建多级目录 ,如果上级不存在,就会自动创建。(创建文件夹多用此)
 createNewFile:只能用来创建文件,且只能在已存在的目录下创建文件,否则会创建失败。
 (FileOutputStream os=new FileOutputStream(file)也可创建文件,看情况使用)
 */

getParentFile()的作用是获得父目录
         问题就是.mkdirs(); 这个方法只能生成一层一层的文件夹,不能生成文件,而你的file对象路径是直接到文件那一层的,
     不用getParentFile()获得父目录的话,就会想你说的那样生成两个文件夹而不是你想要的文件,所以要先调用getParentFile()获得父目录,
     用.mkdirs()生成父目录文件夹,最后把你想要的文件生成到这个文件夹下面,就是想要的结果
 

public class FileTest {
    
    public static void main(String[] args) {
        try {
      
            File file = new File("E:\\test\\test.txt");
            
            if(!file.getParentFile().exists()){
                file.getParentFile().mkdirs();
            }
            
            if(!file.exists()){
                file.createNewFile();
            }
        } catch (IOException e) {
            // TODO
            e.printStackTrace();
            
        }
    }
}

项目的结构:相同颜色是同级的

 



 

bean的配置文件的读取和一般文件的读取有点差别的

 

复制代码

    public static void getValue(String key){ //传入"time"
        Properties prop = new Properties();
        Properties prop2 = new Properties();
        Properties prop3 = new Properties();
        //要么是全路径
        File file = new File("D:\\java\\content\\eclipse-win64\\S\\java\\fd.properties");
     //要么是去在全路径基础上去掉项目名 
        File file2 = new File("java\\fd.properties");
        File file3 = new File("fd2.properties");
        try {
            //装载配置文件
            prop.load(new FileInputStream(file));
            prop2.load(new FileInputStream(file2));
            prop3.load(new FileInputStream(file3));
            
        } catch (IOException e) {
            e.printStackTrace();
        }
        //返回获取的值
        System.out.println(prop.getProperty(key)
                + prop2.getProperty(key)+prop3.getProperty(key));
    } 
8   8   9
 
 

fd.properties的内容

 

 

复制代码

项目名是 S

    

点开bin文件夹

注意这个fd.properties文件

发现:

只有在src或者java文件夹下的java文件或资源文件才会编译,然后通过打包,会复制到commlib中


 后面有2个ok

复制代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

    /*

    1.绝对路径

 

    a.带盘符,如E:/book.xml

 

    b.以http开头,http://img.baidu.com/img/book.jpg

 

2.相对路径

 

  a.带"/"开头,如/book.xml

 

  b.不带"/"开头,如book.xml

 

 

 

 

现在项目结构如下,在ParseXML类中操作,我实验项目System.getProperty("user.dir")=E:\ProjectTest\javaEE\

 

 

绝对路径:

 

new

 File("E:/ProjectTest/javaEE/src/com/ly/javaee/xml/dom4j/book.xml")---OK

 

相对路径

 

new

 File("book.xml")----报错(此时相当于System.getProperty("user.dir")+"book.xml",这是文件book.xml不存在user.dir下面)

 

new File("src/com/ly/javaee/xml/dom4j/book.xml")----OK(不带"/"

 可见在项目中相对的是以项目名为根路径,此时相当于System.getProperty("user.dir")+"src/com/ly/javaee/xml/dom4j/book.xml")

 

new File("/book.xml")----以下可以看出本JVM运行在E盘下,此时带"/"就相当于"E:/book.xml",JVM运行在哪个盘符就以哪个为根路径

 

new

 File("./book.xml");---报错(同new File("book.xml")效果)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值