Java之File类用法总结
File类概述:文件和文件目录路径的抽象表达形式,与平台无关。
1.File能新建、删除、重命名文件和目录,但File不能访问文件内容本身。
如果需要访问文件内容本身,则需要使用输入/输出流。
2.想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,
但是Java程序中的一个File对象, 可能没有一个真实存在的文件或目录。
3.File对象可以作为参数传递给流的构造器。
File类的构造方法:

1. pathName: 表示一个文件路径的字符串表示 "d:\\a.txt"
都可以是绝对路径名或相对路径名。
2.绝对路径名是完整的路径名,不需要任何其他信息,
就可以定位它所表示的文件,在unix: 以"/",在windows:以"盘符:\\"
1. 文件路径分隔符:和操作系统有关
在 UNIX 系统上,此字段为 ':';在 Microsoft Windows 系统上,它为 ';'。
windows f:\a.txt;f:\b.txt
2. 名称分隔符
在 UNIX 系统上,此字段的值为 '/';在 Microsoft Windows 系统上,它为 '\\'。
public class FileDemo {
public static void main(String[] args) {
//user.dir System.getProperty(String key)
System.out.println(System.getProperty("user.dir"));
//关于字符输出 \
System.out.println('\n');
System.out.println('\\');
//File (String pathname) 创建File类对象
File file = new File("d:\\a.txt");
//把文件路径分成了两部分:parent 文件或目录所在的父目录
// d:\b.txt => parenet: d:\ + b.txt
//File (String parent, Sting child)
File file1 = new File("d:\\", "b.txt");
//File (File parent, String child)
File file2 = new File(new File("d:\\"), "b.txt");
//假设File类对象,文件目录已经确定
//有种特殊情况
File supplement = new File("\\test"); //E:\test
System.out.println(supplement.getAbsolutePath());
}
public static void testFile(File parent) {
String fileName = "a.txt";
File file = new File(parent, fileName);
}
}
File类的成员方法:



创建功能:
public boolean createNewFile()
public boolean mkdir()
public boolean mkdirs()
当最后一级目录的父目录,不存在的时候,
mkdir创建失败, 但是mkdirs创建会成功
mkdir vs mkdirs
mkdir:当要创建的目录的父目录不存在的时候,
不会自动创建父目录,然后自动创建目标目录
mkdirs: 可以自动为目标目录创建不存在的父目录
public class FileCreateDemo {
public static void main(String[] args) throws IOException {
File file = new File("d:\\a.txt");
//public boolean createNewFile();
boolean newFile = file.createNewFile();
System.out.println("result = " + newFile);
//在操作系统中,创建目录
//File file1 = new File("d:\\dir\\a");
//boolean mkdir = file1.mkdir();
//System.out.println("result = " + mkdir);
// mkdirs
File file2 = new File("d:\\dir\\a");
boolean mkdirs = file2.mkdirs();
System.out.println("result = " + mkdirs);
}
}
删除功能:
public boolean delete()
如果此路径名表示一个目录,则该目录必须为空才能删除。
public class FileDeleteDemo {
public static void main(String[] args) {
//File file = new File("d:\\a.txt");
//boolean delete = file.delete();
//System.out.println("result = " + delete);
// 即使文件不存在,也不会抛出异常
//测试删除目录只能保证删除空目录
File dir = new File("d:\\dir");
boolean delete1 = dir.delete();
System.out.println("result = " + delete1);
}
}
public class FileRenameDemo {
public static void main(String[] args) {
File file = new File("d:\\a.txt");
//File rename = new File("d:\\aaa.txt");
//
////当目标File对象和我们的要改名的File,在同一目录下的时候,则简单的重命名
//boolean b = file.renameTo(rename);
//System.out.println("result = " + b);
//如果目标File对象和我们的要改名的File,不在同一目录下,还会实现一个文件移动的功能
File rename = new File("e:\\bbb.txt");
boolean b = file.renameTo(rename);
System.out.println("result = " + b);
}
}
File类过滤器接口:
abstract boolean accept(File f) 此过滤器是否接受给定的文件。
当accept返回为true,满足过滤条件 accept方法返回false, 不满足过滤条件。
File[] listFiles(FileFilter filter) 用Filefileter对象,来指明一个对File的一个过滤条件。
ArrayList<File> files 就可以看成是一个可以动态扩容数组,放的是File类型的对象。
public class FileFilterDemo {
public static void main(String[] args) {
File dir = new File("d:\\dir");
filterTXT(dir);
//File[] listFiles(FileFilter filter)
FileFilter filter = new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.getName().endsWith(".txt");
}
};
File[] files = dir.listFiles(filter);
for (int i = 0; i < files.length; i++) {
//System.out.println(files[i].getName());
}
//ArrayList<File> files
ArrayList<File> files1 = new ArrayList<>();
//通过add方法向,该可以自动扩容的“数组”中存放元素
files1.add(new File("test"));
//输出的时候,输出方法会自动掉啊用每一个对象的toString()方法输出
//System.out.println(files1);
}
/*
获取执行目录下的 .txt文件信息
*/
public static void filterTXT(File dir) {
// 获取到指定目录下的所有的文件或者目录
File[] files = dir.listFiles();
//遍历所有的文件或者目录
for (int i = 0; i < files.length; i++) {
if (files[i].isFile()) {
//当是文件的时候
String name = files[i].getName(); // a.txt
// 如果要用split方法分割字符串,'.'
String[] split = name.split("\\.");
if ("txt".equals(split[split.length - 1])) {
System.out.println(files[i]);
}
}
}
}
}
Java之File类用法总结的更多相关文章
- Java中File类的基本用法
File类的基本用法 java.io.File类:代表文件和目录.在开发中,读取文件.生成文件.删除文件.修改文件的属性时经常会用到此类. File类的常用构造方法:public File(Strin ...
- Java之File类
一.初见File类 java.io.File类代表系统中的文件(文件或目录) 常用构造方法 File(String pathname) File(String parent, String child ...
- java.io.File类
java.io.File类 1.凡是与输入.输出相关的类.接口等都定义在java.io包下 2.File是一个类.能够有构造器创建其对象.此对象相应着一个文件(.txt .avi .doc .ppt ...
- JAVA之File类创建对象构造函数传参数需要注意的几点
java中File类用于创建一个文件对象. 首先看一段代码: 1. package MyText1; import java.io.File; public class MyText1 { publi ...
- 设计模式 - 装饰者模式(Decorator Pattern) Java的IO类 用法
装饰者模式(Decorator Pattern) Java的IO类 用法 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26716 ...
- java.io.File类操作
一.java.io.File类 String path="E:/222/aaa";//路径 String path1="aaa.txt"; File file= ...
- Java文件File类学习总结
java.io.File类 代表文件和目录,在开发中,读取文件.生成文件.删除文件.修改文件的属性都会用到该类. 常见构造方法: public File(String pathName){} 以pat ...
- java中File类的常用方法总结
java中File类的常用方法 创建: createNewFile()在指定的路径创建一个空文件,成功返回true,如果已经存在就不创建,然后返回false. mkdir() 在指定的位置创建一个此抽 ...
- Java 中File类的createNewFile()与createTempFile(), delete和deleteOnExit区别
1. Java 中File类的createNewFile()与createTempFile()的区别 最近,在看代码时看到了一个方法, File.createTempFile() ,由此联想到File ...
随机推荐
- c语言中的字节数关系、
转载自:传送门 16位编译器 char :1个字节 char*(即指针变量): 2个字节 short int : 2个字节 int: 2个字节 unsigned int : 2个字节 float: ...
- HTML让文字在图片上显示的几种方法
第一种方式是image 作为背景图片,即:background:url("......."); 第二种方式是将img块与文字块(文字块采用span标签显示)放在同一个div 中,然 ...
- Ant Design的Form组件中FormItem名称相同引起的问题
1.问题描述 在使用Antd组件Form表单的过程中,会出现FormItem同名的情况,此时要特别注意同名引起的表单行为异常问题,主要表现在以下方面: (1)同名表单项的值共享,并且其中一个的值改变, ...
- 困扰的问题终于解决了-docker时区不正确的问题修改记
前一阵子有一台服务器,mysql的时间比北京时间晚了8个小时.我知道是时区的问题,但是不知道为什么弄成这样,宿主机没有问题,后来一看mysql的docker,时区是错的. mybatis-plus打印 ...
- [转]Jquery属性选择器(同时匹配多个条件,与或非)(附样例)
1. 前言 为了处理除了两项不符合条件外的选择,需要用到jquery选择器的多个条件匹配来处理,然后整理了一下相关的与或非的条件及其组合. 作为笔记记录. 2. 代码 1 2 3 4 5 6 7 8 ...
- H3C DHCP租约更新
- Spring Tool Suite记录
快速查询:选中项目名按CTRL+H
- dotnet 控制台读写 Sqlite 提示 no such table 找不到文件
在使用 dotnet 读写 Sqlite 可以通过 EF Core 的方法,但是在 EF Core 创建的数据库可能和读写的数据库不是相同的文件 在我运行代码的时候发现在通过迁移创建数据库,创建的文件 ...
- 【codeforces 750C】New Year and Rating
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- Java虚拟机-字节码执行引擎
概述 Java虚拟机规范中制定了虚拟机字节码执行引擎的概念模型,成为各种虚拟机执行引擎的统一外观(Facade).不同的虚拟机引擎会包含两种执行模式,解释执行和编译执行. 运行时帧栈结构 栈帧(Sta ...