A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Flie dir =new Flie("asd\\ads\\ads\ads\ads");
System.out.print("mkdir"+dir.mkdirs());


我想知道, 正在做出创建动作的 。  是 new的时候 就创建完了?  还是 dir.mkdirs 调用这个方法的时候 才创建呢

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

7 个回复

倒序浏览
new的时候就创建了,new代表开辟一个新的空间。
回复 使用道具 举报
肯定是调用方法的时候创建啊,要不然exists还有什么用
回复 使用道具 举报
是在调用方法的时候创建的路径。
file类的特点,实例化该类对象是以指定路径为参数在内存中构造该路径(文件夹)的实例对象。而调用mkdirs方法时,才是在硬盘上创建出这个路径(文件夹)。
该类区别于输入和输出流,流对象在创建的时候是直接在硬盘上创建其关联的路径。

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
显然是在调用方法的时候创建
File dir = new File("asd\\das");只是在内存中创建一个实例,并没有写到硬盘上去;
mkdirs()方法 可以查帮助文档知道   它的作用是 创建此抽象路径名指定的目录。
回复 使用道具 举报
调用dir.mkdirs()方法时,文件夹才能创建出来,下面代码是在看视频的时候记录下来的,可能对你有帮助
[code]import java.io.File;
import java.io.IOException;

public class Demo {
/*
* 创建: boolean createNewFile()  创建文件,如果已经存在则不创建
*     boolean mkdir()//创建文件夹
*     boolean mkdirs()//创建多级文件夹
* 删除:
* boolean delete();删除失败返回false,当文件正在使用时不能删除
* void deleteOnExit()当文件退出时删除给文件(用于临时文件)
*
* 判断:boolean exists()文件是否存在
* boolean isDirectory()判断是此文件是否是一个目录
* boolean isFile()判断此文件是够是一个标准文件
*
* 获取:
* getName:
* getPath://返回绝对路径
* getPaent://返回绝对路径的上一层目录
* getAbsolutePath(获取绝对路径):
*
* static File[]  File.listRoots():获取系统的有效盘符(返回数组)
* String[] list();获取指定路径的所有文件和目录(返回数组)
*
* File[] listFiles(); (返回路径名数组,可对象进行操作)获取目录下的文件
*/
       
        public static void main(String[] args) throws IOException {
                //将file.txt封装成对象,可以将已有的和未有的文件或文件夹封装成对象
                File f = new File("file.txt");
//                System.out.println(f.getName());
//                System.out.println(f.getPath());//获取相对路径
//                System.out.println(f.getAbsolutePath());//获取绝对路径
               
                File f1 = new File("G:\\abc\\a.txt");//在G盘下创建abc文件夹又在abc文件夹次啊创建a.txt文件夹
                System.out.println(f1.mkdirs());//创建文件夹
//                System.out.println(f1.isDirectory());
                System.out.println(f.createNewFile());//创建文件,如果已经存在则不创建
//                System.out.println(f.isFile());//判断此文件是否是一个标准文件
//                System.out.println(f.delete());//判断此文件是否是一个目录
//                System.out.println(f.canExecute());//判断文件是否可执行
//                System.out.println(f.exists());//判断文件是否存在
               
                //listRoots方法
                File[] files = File.listRoots();//返回系统的所有盘符
                for(File k : files){
                        System.out.println(k);
                }
                //listFiles方法
                File f2 = new File("D:\\");
                File[] s = f2.listFiles();//返回D盘下的所有文件和目录
                System.out.println(s.length);
                for(File str : s){
                        System.out.println(str.getPath() + "-->" +str.getName());
                }
        }
}
回复 使用道具 举报
new File的时候只是建立了一个File类,就是把路径包装成了一个类,这样就方便用了,下面调用方法的时候调用的同时就做了new一个文件的动作
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马