Java 文件操作

Java - 文件操作

路径

绝对路径

Win

D:\GreenPackage\ja-netfilter-all-main\scripts

Linux

/home/demodeom/.ssh

相对路径

  • ./ 表示相对于当前文件所在的目录, 一般情况下 ./ 可以省略
  • ../ 表示相对于当前文件上一级目录
./ja-netfilter-all-main/scripts
ja-netfilter-all-main/scripts
../ja-netfilter-all-main/scripts
../../../ja-netfilter-all-main/scripts

文件 / 目录

文件 目录

目录 ja-netfilter-all-main/scripts

文件 ja-netfilter-all-main/scripts.txt

一般情况下, 带有扩展名的为文件, 比如 .txt .exe .pdf 等等

File

import java.io.File;

目录

创建目录

boolean mkdir() 创建目录, 如果目录已经存在或者父目录不存在, 返回 false; 创建成功返回 true

make directory

File f1 = new File("电影");
boolean f1_res = f1.mkdir();
System.out.println(f1_res); // true
File f2 = new File("电影/动作/国内/2022");
boolean f2_res = f2.mkdir();
System.out.println(f2_res);  // false

boolean mkdirs() 创建目录, 如果目录已经存在, 返回 false; 创建成功返回 true; 通常用于创建多层目录

File f2 = new File("电影/动作/国内/2022");
boolean f2_res = f2.mkdirs();
System.out.println(f2_res);
删除目录

boolean delete() 删除目录; 如果目录不为空, 则删除失败, 返回 false; 删除成功返回 true

File f3 = new File("电影/动作/国内/2022");
boolean f3_res = f3.delete();
System.out.println(f3_res);  // true
File f4 = new File("电影");
boolean f4_res = f4.delete();
System.out.println(f4_res);  // false

文件

创建文件

boolean createNewFile()

  1. 如果文件已经存在, 返回 false
  2. 如果文件所在的目录不存在, 则抛出 IOException 异常
File f5 = new File("1.txt");
boolean f5_res = f5.createNewFile();
System.out.println(f5_res);
File f6 = new File("aa/1.txt");
boolean f6_res = f6.createNewFile();
System.out.println(f6_res); // 抛出  `IOException` 异常
删除文件

boolean delete() 删除文件

  1. 如果文件不存在, 则返回 false
  2. 如果文件删除成功, 则返回 true
File f7 = new File("1.txt");
boolean f7_res = f7.delete();
System.out.println(f7_res);  // true
 File f8 = new File("aa/1.txt");
 boolean f8_res = f8.delete();
 System.out.println(f8_res);  // true

路径

绝对路径

String getAbsolutePath() 获取文件/目录绝对路径

File f9 = new File("Class01.java");
String absPath =f9.getAbsolutePath();
System.out.println(absPath);  // D:\Project\Java\09\Class01.java
File f10 = new File("");
String absPath10 =f10.getAbsolutePath();
System.out.println(absPath10);  // D:\Project\Java\09
父目录

String getParen() 返回文件或者目录的父目录名, 如果没有指定父目录, 则返回 null

File f13 = new File("电影/动作/国内/2022/1.txt");
String f13Name = f13.getParent();
System.out.println(f13Name);  // 2022
File f14 = new File("电影/动作/国内/2022");
String f14Name = f14.getParent();
System.out.println(f14Name);  // 电影/动作/国内
文件/目录名

String getName() 获取文件或者目录名

File f11 = new File("电影/动作/国内/2022");
String f11Name = f11.getName();
System.out.println(f11Name);
File f12 = new File("电影/动作/国内/2022/1.txt");
String f12Name = f12.getName();
System.out.println(f12Name);
文件/目录路径

String getPath() 返回文件或者目录的路径

File f16 = new File("电影/动作/国内/2022/1.txt");
String f16Path = f16.getPath();
System.out.println(f16Path);  // 电影\动作\国内\2022\1.txt
File f17 = new File("电影/动作/国内/2022");
String f17Path = f17.getPath();
System.out.println(f17Path);  // 电影\动作\国内\2022

权限

读权限

boolean canRead() 判断是否可以读取此文件。

  1. 如果文件不存在, 则返回 false
  2. 如果文件可读, 则返回 true
File f18 = new File("./1.txt");
boolean f18CanRead = f18.canRead();
System.out.println(f18CanRead);  // false
File f19 = new File("./2.txt");
boolean f19CanRead = f19.canRead();
System.out.println(f19CanRead);  // false
写权限

boolean canWrite() 判断是否可以写入。

  1. 如果文件不存在, 则返回 false
  2. 如果文件可写, 则返回 true
File f20 = new File("./1.txt");
boolean f20CanWrite = f20.canWrite();
System.out.println(f20CanWrite);  // false
File f21 = new File("./2.txt");
boolean f20CanWrite = f21.canWrite();
System.out.println(f20CanWrite);  // true

文件属性

long length() 返回文件的长度, 单位: 字节

File f22 = new File("./2.txt");
long f22Length = f22.length();
System.out.println(f22Length);  // 29
File f23 = new File("电影/动作/国内/2022");
long f23Length = f23.length();
System.out.println(f23Length);  // 0

如果是目录, 则长度为 0

long lastModified() 返回文件最后一次被修改的时间(时间戳)

File f24 = new File("./2.txt");
long f24LastMT = f24.lastModified();
System.out.println(f24LastMT);  // 1667488238812

判断

判断是否存在

boolean exists() 判断文件或者目录是否存在; 如果存在, 返回 true, 否则返回 false

 File f25 = new File("./2.txt");
boolean f25Exit = f25.exists();
System.out.println(f25Exit);  // true
判断是否是标准文件

boolean isFile() 判断路径是否是一个标准文件,

  1. 如果是标准文件, 返回 true, 否则返回 false
  2. 如果文件不存则, 返回 false
File f26 = new File("./2.txt");
boolean f26File = f26.isFile();
System.out.println(f26File);
判断是否是目录

boolean isDirectory() 判断路径是否是一个目录

  1. 如果是目录, 返回 true, 否则返回 false
  2. 如果目录不存则, 返回 false
File f27 = new File("电影");
boolean f27Dir = f27.isDirectory();
System.out.println(f27Dir);

目录遍历

String[] list() 返回指定目录下的所有文件或目录

File f28 = new File("./");
String[] f28Files = f28.list();
for (int i = 0; i < f28Files.length; i++) {
	System.out.println(f28Files[i]);
}

public File[] listFiles() 返回指定目录下的所有文件或目录

File f29 = new File("./");
File[] f29Files = f29.listFiles();
for (int i = 0; i < f29Files.length; i++) {
    String fileAbsPath = f29Files[i].getAbsolutePath();
	System.out.println(fileAbsPath);
}

https://zditect.com/main/java/java-escape-characters.html

FileRead

int read(char [] c, int offset, int len) 读取字符到c数组,返回读取到字符的个数

读取固定的长度的内容

File f = new File("./1.txt");

FileReader fr = new FileReader(f);
char[] a = new char[50];
fr.read(a);
for (int i=0; i < a.length; i++){
	System.out.print(a[i]);
}

读取所有的内容

File f = new File("./1.txt");
int fl = (int) f.length();
FileReader fr = new FileReader(f);
char[] a = new char[fl];
fr.read(a);

for (int i = 0; i < a.length; i++) {
	System.out.print(a[i]);
}

char[] 转换为字符串

String s = String.valueOf(a)

File Write

FileWriter(File file)

FileWriter(File file, boolean append)

  • file File 类型的对象
  • boolean true, 表示追加; false: 表示覆盖

覆盖写

File f = new File("./1.txt");
FileWriter fw = new FileWriter(f);
fw.write("你好 Java");
fw.close();

追加写

File f = new File("./1.txt");
FileWriter fw = new FileWriter(f, true);
fw.write("; 2022年11月04");
fw.close();

注: 不能忘记关闭文件 fw.close();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值