玖叶教程网

前端编程开发入门

java File类用法

/**

* 测试File类

*/

public class TestFile {

public static void main(String[] args) {

System.out.println(System.getProperty("user.dir"));

//返回当前java项目的路径 返回String

File f1 = new File("C:/abc/def/a.txt");

//new File()传path路径传参给构造器 生成File对象 这里的路径不一定真实存在 目录通过/分割 也可以用\\ 一个\是转义符 \\代表\

File f2 = new File("C:/abc/def");

//File对象既可以指代任何种类的文件也可以指代目录 这里的路径是绝对路径

File f3 = new File("a.txt");

//路径没有从盘符开始 是相对路径 默认路径是user.dir

File f4 = new File(System.getProperty("user.dir"));

//将当前java项目的路径传参给构造器 f4指向当前项目目录

System.out.println(f1.exists()+"判断f1指代的文件或者路径是否存在 结果false ");

//.exists()方法无法分辨目标是目录还是文件 如果想查名为a.txt的文件夹是否存在 遇到有a.txt文件但没有a.txt文件夹时也会返回true

System.out.println(f1.isDirectory()+"判断f1是否为目录 结果false 如果路径invalid无效/不存在也会返回false");

System.out.println(f2.isFile()+"判断f2是否为文件 结果false 如果路径invalid无效/不存在也会返回false");

try {

f1.createNewFile();

//.createNewFile()创建f1所指的File "C:/abc/def/a.txt" 该方法throws IOException 需要try/catch处理或者throws抛出

//创建文件指的是a.txt 如果a.txt之前的路径或某一层路径不存在则抛出IOException f1指代的是a.txt 创建文件不负责创建中间路径

} catch (IOException e) {

throw new RuntimeException(e);

}

/*

Exception in thread "main" java.lang.RuntimeException: java.io.IOException: 系统找不到指定的路径。

at TestFile.main(TestFile.java:20)

Caused by: java.io.IOException: 系统找不到指定的路径。

at java.io.WinNTFileSystem.createFileExclusively(Native Method)

at java.io.File.createNewFile(File.java:1023)

at TestFile.main(TestFile.java:17)

RuntimeException运行时异常

(TestFile.java:20行) throw new RuntimeException(e); 运行时异常中止了进程

Exclusively唯一地 Native本地的

*/

boolean success = f2.mkdir();

//.mkdir() make directory 创建目录 "C:/abc/def" 创建目录指的是最后一层def目录 如果def之前的目录缺失或者某一层缺失则无法创建 返回false 如果创建成功返回true

//.mkdir()只负责创建指向的目录 不会创建过程中的目录 目录结构中有一个不存在则不会创建整个目录树

System.out.println(success+"返回false 因为中间路径 abc不存在");

success = f1.mkdirs();

//.mkdirs()创建目录 如果过程中目录缺失会一并创建 "C:/abc/def/a.txt" 使用创建目录的方法会将a.txt当做目录/文件夹的名字创建 同样返回boolean表示创建操作执行与否

System.out.println(success+"返回true 在C盘创建了 abc/def/a.txt/ 的目录");

f1.delete();

//删除文件/目录 执行后无法撤销 "C:/abc/def/a.txt" 只会删除a.txt 不会删除新建的abc/def/

try {

f1.createNewFile();

//有了中间目录 .createNewFile() 方法创建文件成功

} catch (IOException e) {

throw new RuntimeException(e);

}

System.out.println(f1.lastModified()+"最后修改时间 返回long 结果为1657629701563");

//modify修改 .lastModified 返回毫秒long类型 可以通过 new Date(f1.lastModified())转换成Date对象打印来显示修改日期

System.out.println(f1.getPath()+"得到路径 返回String 结果为C:\\abc\\def\\a.txt 路径包含f1指代的文件名/目录名");

System.out.println(f1.getName()+"得到文件名/目录名 结果为a.txt");

System.out.println(f1.length()+"得到文件大小 结果为0 创建了文件但是没有写入内容");

success = f2.delete();

//删除同样返回执行结果true/false

System.out.println(success+"结果为false 想删除C:/abc/def但是C:/abc/def/目录下存在文件a.txt 删除未执行");

f1.delete();

f2.delete();

//从末端往前依次删除 成功

try {

f2.createNewFile();

//C:/abc/def .createNewFile()将def当做文件来创建 def不再是目录

} catch (IOException e) {

throw new RuntimeException(e);

}

}

}

class TestFileCreate{

public static void main(String[] args) {

File f5 = new File("C:/abc/def/h/a.jpg");

File dir = f5.getParentFile();

//.getParentFile() 返回f5的父目录 f5是a.jpg 父目录是h/

System.out.println(dir.getPath()+"结果为C:\\abc\\def\\h");

boolean exist = f5.exists();

if (exist){

f5.delete();

//判断a.jpg是否存在 存在则删除

}else {

dir.mkdirs();

//方法中会判断目录是否存在,存在目录则返回false 不存在则创建父目录及目录树

//由于之前创建了def文件 .mkdirs()方法无法分辨文件和目录 在def文件下创建子目录h失败 删除def文件后可正常创建目录树

boolean success;

try {

success = f5.createNewFile();

//创建文件也会返回执行结果true或false

} catch (IOException e) {

throw new RuntimeException(e);

}

System.out.println(success+"结果为true");

f5.renameTo(new File("C:/abc/def/h/a.png"));

//.renameTo(File dest)重命名文件 需要传参File对象

}

}

}

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言