1.文件可以简单的理解为在外设硬盘上面保存数据的一种方式
2.文件以共可以由两部分构成:属性(文件大小,文件名,文件类型等)+内容(就是文件里面放的是什么)
3.JavaIO,对文件写入或者读取的过程称之为IO
在java.io包之中,用File类来对文件进行操作(创建,删除,获得信息等)
Java.io.File类是一个普通的类,如果要实例化对象,则常用到两个构造方法
方法 | 解释 |
---|---|
public File(String pathname) | 创建指定路径文件对象 |
public File(String parent,String child) | 同上,但可以指明父路径和子路径 |
方法 | 说明 |
---|---|
public boolean exists() | 判断一个文件是否存在 |
public boolean isDirectory() | 判定一个文件是目录 |
public boolean isFile() | 判定是否是文件 |
public boolean delete() | 删除文件 |
public boolean createNewFile() throws IOException | 创建一个新文件 |
代码示例1-检测文件是否存在:
package com.bittech;
import java.io.File;
public class FileDemo {
public static void main(String[] args) {
String path="E:\\java-code\\file\\";
String name="demo.txt";
String pathname=path+name;
File file=new File(pathname);
boolean res=file.exists();
System.out.println(res);
}
}
package com.bittech;
import java.io.File;
public class FileDemo {
public static void main(String[] args) {
String path="E:\\java-code\\file\\";
String name="demo.txt";
String pathname=path+name;
File file=new File(pathname);
boolean res=file.isDirectory();
System.out.println("是否是目录:"+res);
boolean res1=file.isFile();
System.out.println("是否是文件:"+res1);
file.delete();
if(file.exists()){
System.out.println("删除失败!");
}else{
System.out.println("删除成功!");
}
}
}
运行结果:
此时去到路径下已经没有demo.txt文件了
代码示例3-创建新文件:
package com.bittech;
import java.io.File;
import java.io.IOException;
public class FileDemo {
public static void main(String[] args) {
String path="E:\\java-code\\file\\";
String name="demo1.txt";
String pathname=path+name;
File file=new File(pathname);
if(!file.exists()){
try {
file.createNewFile();
System.out.println("文件创建成功!");
} catch (IOException e) {
e.printStackTrace();
System.out.println("文件创建失败!");
}
}else{
System.out.println("文件已经存在!");
}
}
}
运行结果(运行两次即文件已经存在):
注意:
实际项目环境可能与开发环境不同,所以要注意分隔符,windows下使用的是 \,而linux/unix系统下使用的是/。
方法 | 解释 |
---|---|
public boolean mkdir() | 创建一个空目录 |
public boolean mkdirs() | 创建目录(无论有多少级父目录,都会创建) |
public String getParent | 取得父路径 |
public File getParentFile | 取得父File对象 |
代码示例1-创建指定一个或者多个目录的路径:
package com.bittech;
import java.io.File;
public class FileDemo2 {
public static void main(String[] args) {
String path="E:\\java-code\\file\\";
//String dir_name="demo_dir";
String dir_name="demo_dir\\dir1\\dir2\\"; //会逐层创建
String pathname=path+dir_name;
File file=new File(pathname);
if(!file.exists()){
// file.mkdir();
file.mkdirs();
System.out.println("路径创建成功!");
}else{
System.out.println("路径已存在!");
}
}
}
package com.bittech;
import java.io.File;
public class FileDemo2 {
public static void main(String[] args) {
String path="E:\\java-code\\file\\";
String dir_name="demo_dir\\dir1\\dir2\\"; //会逐层创建
String pathname=path+dir_name;
File file=new File(pathname);
System.out.println(file.getParent());
}
}
代码示例3-获取父目录File对象,并在父目录下,创建文件demo.java:
package com.bittech;
import java.io.File;
import java.io.IOException;
public class FileDemo2 {
public static void main(String[] args) throws IOException {
String path="E:\\java-code\\file\\";
String dir_name="demo_dir\\dir1\\dir2\\demo.java";
String pathname=path+dir_name;
File file=new File(pathname);
File pfile=file.getParentFile();
if(!pfile.exists()){
pfile.mkdirs();
}
if(!file.exists()){
file.createNewFile();
}
}
}
方法 | 解释 |
---|---|
public long length() | 取得文件大小(字节) |
public long lastModified() | 最后一次修改日期 |
代码示例1-取得文件信息:
package com.bittech;
import java.io.File;
import java.io.IOException;
import java.util.Date;
public class FileDemo3 {
public static void main(String[] args) throws IOException {
String path="E:\\java-code\\file\\";
String name="demo.txt";
String pathname=path+name;
File file=new File(pathname);
if(!file.exists()){
file.createNewFile();
}
System.out.println(name+"size="+file.length());
System.out.println(name+"最近修改时间="+new Date(file.lastModified()));
}
}
绝对路径:是指目录下的绝对位置,直接到达目标位置。完整的描述文件位置的路径就是绝对路径。如E:\java-code\file\Test.java
相对路径:相对于某个基准目录的路径。如当前路径为E:\\javacode,要描述上述路径(E:\\javacode\\Java\\Test.java),只需要输入Java\\Test.java即可
方法 | 解释 |
---|---|
public File[] listFiles() | 列出一个目录指定的全部组成 |
代码示例-列出某个目录中的全部组成:
package com.bittech;
import java.io.File;
import java.io.IOException;
import java.util.Date;
public class FileDemo3 {
public static void main(String[] args) throws IOException {
//保证路径是正确且存在的
File file=new File("E:\\linuxtools");
File[] result=file.listFiles();
for(File file1:result){
System.out.println(file1);
}
}
}