Java学习路线-25:文件操作File类
  TEZNKK3IfmPf 2023年11月12日 19 0

第15 章 : 文件操作

67 File类基本操作

文件操作系统操作类:

java.io.File

文件创建,删除,重命名

File类基本使用

File 实现了Comparable接口

// 构造方法
public File(String pathname)
public File(String parent, String child)

// 创建文件
public boolean createNewFile() throws IOException

// 文件存在
public boolean exists()

// 删除文件
public boolean delete()

示例:

import java.io.File;
import java.io.IOException;

class Demo {
public static void main(String[] args) throws IOException {
File file = new File("./demo.txt");

if(file.exists()){
boolean ret = file.delete();
System.out.println("删除结果:" + ret);

} else{
boolean ret = file.createNewFile();
System.out.println("创建结果:" + ret);
}
}
}

68 File类操作深入

1、路径分隔符

Windows分隔符 ​​"\"​

Linux分隔符 ​​"/"​

路径分隔符常量 File.separator

2、文件操作流程

程序 -> JVM -> 操作系统函数 -> 文件处理

重复删除或创建的时候会有延时情况,

建议:文件名不要重名

3、创建文件的时候父级目录必须存在

// 获取父路径
public File getParentFile()

// 创建目录
public boolean mkdirs()

示例

import java.io.File;
import java.io.IOException;

class Demo {
public static void main(String[] args) throws IOException {
File file = new File("./dir/demo/demo.txt");
File parentFile = file.getParentFile();

if (!parentFile.exists()) {
parentFile.mkdirs();
}

file.createNewFile();
}
}

69 获取文件信息

涉及文件本身操作,不涉及文件内容处理

// 是否可读
public boolean canRead()

// 是否可写
public boolean canWrite()

// 是否可执行
public boolean canExecute()

// 是否为文件
public boolean isFile()

// 是否为目录
public boolean isDirectory()

// 获取文件长度 字节
public long length()

// 最后修改时间 13位时间戳
public long lastModified()

// 列出目录内容
public File[] listFiles()

示例

import java.io.File;

class Demo {
public static void main(String[] args) {
File file = new File("./dir/demo");

System.out.println(file.canRead()); // true
System.out.println(file.canWrite()); // true
System.out.println(file.canExecute()); // false

System.out.println(file.isFile()); // true
System.out.println(file.isDirectory()); // false

System.out.println(file.length()); // 135 字节

System.out.println(file.lastModified()); // 1574952161000

File[] list = file.listFiles();
for (File f : list) {
System.out.println(f);
}
// ./dir/demo/demo.txt

}
}

70 综合案例:列出目录结构

import java.io.File;

class Demo {
public static void main(String[] args) {
File file = new File("./dir");
listDir(file);
}

public static void listDir(File file){
if(file.isDirectory()){
File[] files = file.listFiles();

if(files != null){
for(File f: files){
listDir(f);
}
}
} else{
System.out.println(file);
}
}
}

71 综合案例:文件批量更名

import java.io.File;

class Demo {
public static void main(String[] args) {
long start = System.currentTimeMillis();

File file = new File("./dir");
renameDir(file);

long end = System.currentTimeMillis();
System.out.println("花费时间:" + (end - start));
}

public static void renameDir(File file){
if(file.isDirectory()){
File[] files = file.listFiles();

if(files != null){
for(File f: files){
renameDir(f);
}
}
} else{

if (file.getName().contains(".")){
int endPos = file.getName().lastIndexOf(".");
String name = file.getName().substring(0, endPos);

File newFile = new File(file.getParent(), name + ".txt");

System.out.println(file.getName());
System.out.println(newFile);

file.renameTo(newFile);
}
}
}
}
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月12日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   24天前   51   0   0 java
  TEZNKK3IfmPf   2024年05月31日   55   0   0 java
TEZNKK3IfmPf