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();
            
        }
    }
}

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

new File文件创建到了docker容器中 newfile会自动创建文件夹吗_System

 


new File文件创建到了docker容器中 newfile会自动创建文件夹吗_xml_02

new File文件创建到了docker容器中 newfile会自动创建文件夹吗_java_03


 

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

new File文件创建到了docker容器中 newfile会自动创建文件夹吗_java_04

 

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

 

new File文件创建到了docker容器中 newfile会自动创建文件夹吗_System_05

  

new File文件创建到了docker容器中 newfile会自动创建文件夹吗_System_06

 

点开bin文件夹

new File文件创建到了docker容器中 newfile会自动创建文件夹吗_System_07

注意这个fd.properties文件

发现:

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


 后面有2个ok


/*
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")效果)