.File对象对应你磁盘上的一个文件或者文件夹(路径),一个file对象代表了一个文件或者文件夹的引用,并不是直接物理上的。
进行文件基本操作,课题使用如下方法
创建新文件, public boolean creatNewFile() throws IOException;
判断文件是否存在:public boolean exists();
删除文件:public boolean delete();
package file;
import java.io.File;
import java.io.IOException;
public class Javaapidemo {
public static void main(String[] args) throws IOException {
File file = new File("d:\\mldn.txt");
if (file.exists()) {//判断文件存不存在 tuen文件存在,false文件不存在
file.delete();
} else
System.out.println(file.createNewFile());//创建文件
}
}
File类操作深入
1.在实际的软件项目和运行过程中,往往都在Windows中进行项目的开发,而在项目部署的时候教育Linux系统来进行项目的发部以保证生产环节的安全性;
而两个系统的分隔符不同Windows为“\0”,Linux为"/"所以File类中提供一个常量:public static final separator;
package file;
import java.io.File;
import java.io.IOException;
public class Javaapidemo {
public static void main(String[] args) throws IOException {
File file = new File("d:"+File.separator+"mldn.txt");//分隔符的不同利用File.spearator
if (file.exists()) {//判断文件存不存在 tuen文件存在,false文件不存在
file.delete();
} else
System.out.println(file.createNewFile());//创建文件
}
}
但是随着系统适用性的不断加强,对于当前路径操作也可以随意使用
2.在使用File类进行文件处理的时候要注意的是:程序到JVM到操作系统函数到文件处理,所以 在进行文件的重复删除和创建是会出现延迟问题,所以这个时候最好的方法是别重名;
3.在进行文件创建是要文件的父目录首先存在
package file;
import java.io.File;
import java.io.IOException;
public class Javaapidemo {
public static void main(String[] args) throws IOException {
File file = new File("d:"+File.separator+"hello"+File.separator+"demo"+File.separator+"mldn.txt");//分隔符的不同利用File.spearator
if (file.exists()) {//判断文件存不存在 tuen文件存在,false文件不存在
file.delete();
} else
System.out.println(file.createNewFile());//创建文件
}
}
```java
"D:\Program Files\Java\jdk1.8.0_161\bin\java.exe" "-javaagent:D:\ruanjian\idea\IntelliJ IDEA 2020.2.2\lib\idea_rt.jar=52368:D:\ruanjian\idea\IntelliJ IDEA 2020.2.2\bin" -Dfile.encoding=UTF-8 -classpath "D:\Program Files\Java\jdk1.8.0_161\jre\lib\charsets.jar;D:\Program Files\Java\jdk1.8.0_161\jre\lib\deploy.jar;D:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\access-bridge-64.jar;D:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\cldrdata.jar;D:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\dnsns.jar;D:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\jaccess.jar;D:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\jfxrt.jar;D:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\localedata.jar;D:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\nashorn.jar;D:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\sunec.jar;D:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\sunjce_provider.jar;D:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\sunmscapi.jar;D:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\sunpkcs11.jar;D:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\zipfs.jar;D:\Program Files\Java\jdk1.8.0_161\jre\lib\javaws.jar;D:\Program Files\Java\jdk1.8.0_161\jre\lib\jce.jar;D:\Program Files\Java\jdk1.8.0_161\jre\lib\jfr.jar;D:\Program Files\Java\jdk1.8.0_161\jre\lib\jfxswt.jar;D:\Program Files\Java\jdk1.8.0_161\jre\lib\jsse.jar;D:\Program Files\Java\jdk1.8.0_161\jre\lib\management-agent.jar;D:\Program Files\Java\jdk1.8.0_161\jre\lib\plugin.jar;D:\Program Files\Java\jdk1.8.0_161\jre\lib\resources.jar;D:\Program Files\Java\jdk1.8.0_161\jre\lib\rt.jar;C:\Users\lyh\IdeaProjects\1111\out\production\1111" file.Javaapidemo
Exception in thread "main" java.io.IOException: 系统找不到指定的路径。
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:1012)
at file.Javaapidemo.main(Javaapidemo.java:12)
Process finished with exit code 1
如何获得父路径:Public File getParentFile();
创建目录:public boolean mkdirs()_;
```java
package file;
import java.io.File;
import java.io.IOException;
public class Javaapidemo {
public static void main(String[] args) throws IOException {
File file = new File("d:"+File.separator+"hello"+File.separator+"demo"+File.separator+"mldn.txt");//分隔符的不同利用File.spearator
if (!file.getParentFile().exists()){//父路径不存在
file.getParentFile().mkdirs();//创建父目录
}
if (file.exists()) {//判断文件存不存在 tuen文件存在,false文件不存在
file.delete();
} else
System.out.println(file.createNewFile());//创建文件
}
}
获得文件信息
文件是否可读:public boolean canRead();
文件是否可写:public boolean canWrite();
package file;
import java.io.File;
import java.io.IOException;
public class Javaapidemo {
public static void main(String[] args) throws IOException {
File file = new File("d:"+File.separator+"my.jpeg");//分隔符的不同利用File.spearator
System.out.println("文件是否可读"+file.canRead());
System.out.println("文件是否可写"+file.canWrite());
}
}
获取文件长度:public long length(). 该方法返回的是long类型
System.out.println("文件大小"+file.length());
文件最后修改时间 public long lastModified()
System.out.println("最后修改时间"+ new SimpleDateFormat("yyyy-MM-dd HH-mm-ss.SSS").format(file.lastModified()));
判断是否是目录:public boolean isDirectory()
判断是否是文件: public Boolean file()
System.out.println("是否是目录"+file.isDirectory());
System.out.println("是否是文件"+file.isFile());
列出文件目录内容