[Java开发之路](6)File类的使用

简介:


1. 构造方法


构造方法 描述
File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建一个新的文件实例。
File(String parent , String child) 通过给定的父路径名字符串和子路径名字符串来创建一个新的文件实例。
File(File parent , String child) 通过给定的父抽象路径对象和子路径名字符串来创建一个新的文件实例。
File(URI uri) 通过给定的URI来创建一个新的文件实例

 
  
package com.qunar.bean;
 
import java.io.File;
import java.net.URISyntaxException;
 
public class FileDemo {
public static void main(String[] args) throws URISyntaxException {
String pathname = "E:\\Recommended system";
// File(String pathname)
File file1 =new File(pathname);
// File(String parent,String child)
File file2 =new File(pathname,"train_data.txt");
// File(File parent,String child)
File file3 = new File(file1, "train_data.txt");
// File(URI uri)
// File file4 =new File(new URI(""));
// separator 跨平台分隔符
File file4 =new File("E:"+File.separator+"Recommended system");
System.out.println(file1);
System.out.println(file2);
System.out.println(file3);
System.out.println(file4);
}
}
运行结果:
   
   E:\Recommended system
   E:\Recommended system\train_data.txt
   E:\Recommended system\train_data.txt
   E:\Recommended system



2. 创建与删除方法

方法 描述
boolean createNewFile() 如果文件存在返回false,否则返回true并且创建文件 
boolean mkdir() 创建目录
boolean mkdirs() 创建多级目录
boolean delete() 如果文件存在返回true并且删除文件,否则返回false
boolean deleteOnExit() 文件使用完成后删除


 
 
package com.qunar.bean;
 
import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
 
public class FileDemo {
public static void main(String[] args) throws URISyntaxException {
String pathname = "D:\\Recommended system.txt";
// 创建文件实例
File file = new File(pathname);
try {
// 如果文件存在返回false,否则返回true并且创建文件
if(file.createNewFile()){
System.out.println("创建文件["+pathname+"]");
}//if
else{
System.out.println("文件["+pathname+"]已存在");
}//else
} catch (IOException e) {
e.printStackTrace();
}
}
}
 
  
package com.qunar.bean;
 
import java.io.File;
 
public class FileDemo {
public static void main(String[] args) {
String pathname = "D:\\Recommended system.txt";
// 创建文件实例
File file = new File(pathname);
//如果文件存在返回true并且删除文件,否则返回false
if(file.delete()){
System.out.println("删除文件["+pathname+"]");
}//if
else{
System.out.println("文件["+pathname+"]不存在");
}//else
}
}
 
   
package com.qunar.bean;
 
import java.io.File;
 
public class FileDemo {
public static void main(String[] args) {
String pathname = "D:\\Recommended system";
String pathname2 = "D:\\Recommended system2\\Paper\\News";
// 创建文件实例
File file = new File(pathname);
File file2 = new File(pathname2);
//如果目录不存在返回true并且创建目录,否则返回false
if(file.mkdir()){
System.out.println("创建目录["+pathname+"]");
}//if
else{
System.out.println("目录["+pathname+"]已存在");
}//else
//如果多级目录不存在返回true并且创建多级目录,否则返回false
if(file2.mkdirs()){
System.out.println("创建多级目录["+pathname2+"]");
}//if
else{
System.out.println("多级目录["+pathname2+"]已存在");
}//else
}
}

3. 判断方法


方法 描述
boolean canExecute() 判断文件是否可执行
boolean canRead() 判断文件是否可读
boolean canWrite() 判断文件是否可写
boolean exists() 判断文件是否存在
boolean isDirectory() 判断是否是目录
boolean isFile() 判断是否是文件
boolean isHidden() 判断是否隐藏
boolean isAbsolute() 判断是否是绝对路径 文件不存在也能判断

 
  
package com.qunar.bean;
 
import java.io.File;
 
public class FileDemo {
public static void main(String[] args) {
String pathname = "D:\\Recommended system\\train_data.txt";
// 创建文件实例
File file = new File(pathname);
// 判断文件是否可执行
if(file.canExecute()){
System.out.println("文件["+pathname+"]可执行");
}//if
else{
System.out.println("文件["+pathname+"]不可执行");
}//else
// 判断文件是否可读
if(file.canRead()){
System.out.println("文件["+pathname+"]可读");
}//if
else{
System.out.println("文件["+pathname+"]不可读");
}//else
// 判断文件是否可写
if(file.canWrite()){
System.out.println("文件["+pathname+"]可写");
}//if
else{
System.out.println("文件["+pathname+"]不可写");
}//else
// 判断文件是否存在
if(file.exists()){
System.out.println("文件["+pathname+"]存在");
}//if
else{
System.out.println("文件["+pathname+"]不存在");
}//else
// 判断文件是否是目录
if(file.isDirectory()){
System.out.println("文件["+pathname+"]是目录文件");
}//if
else{
System.out.println("文件["+pathname+"]不是目录文件");
}//else
// 判断是否是一个绝对路径
if(file.isAbsolute()){
System.out.println("["+pathname+"]是绝对路径");
}//if
else{
System.out.println("["+pathname+"]不是绝对路径");
}//else
}
}

4.获取方法

方法 描述
String getName() 返回文件或者是目录的名称
String getPath() 返回路径
String getAbsolutePath() 返回绝对路径
String getParent() 返回父目录,如果没有父目录则返回null
long lastModified() 返回最后一次修改的时间
long length() 返回文件的长度
File[] liseRoots() 返回系统可用的系统盘
String[] list()  返回一个字符串数组,给定路径下的文件或目录名称字符串
String[] list(FilenameFilter filter) 返回满足过滤器要求的一个字符串数组
File[]  listFiles() 返回一个文件对象数组,给定路径下文件或目录
File[] listFiles(FilenameFilter filter) 返回满足过滤器要求的一个文件对象数组

 
     
package com.qunar.bean;
 
import java.io.File;
 
public class FileDemo {
public static void main(String[] args) {
String pathname = "E:\\Recommended system";
// 创建文件实例
File file = new File(pathname);
// 返回文件或者目录的名称
System.out.println("GetName->"+file.getName());
// 返回路径
System.out.println("GetPath->"+file.getPath());
// 返回文件长度
System.out.println("Length->"+file.length());
// 返回给定路径下的文件和目录字符串数组
String[] files = file.list();
for (String name : files) {
System.out.println("名称:"+name);
}//for
File[] files2 = file.listFiles();
for (File file2 : files2) {
if(file2.isFile()){
System.out.println("文件名称:"+file2.getName());
}//if
else if(file2.isDirectory()){
System.out.println("目录名称:"+file2.getName());
}//else
}//for
// 列出可用的系统盘
File[] files3 = file.listRoots();
for (File file3 : files3) {
System.out.println("文件名称:"+file3.getPath());
}
}
}


运行结果:

GetName->Recommended system
GetPath->E:\Recommended system
Length->16384
名称:540135b87c6d0.csv
名称:5403c3df31780.doc
名称:baidu-salon-38-1.mp3
名称:baidu-salon-38-1.pdf
名称:TextAnalysis.rar
名称:train_data.txt
名称:中文停用词表(比较全面_有1208个停用词).txt
名称:主题提起
名称:协同过滤
名称:天猫推荐算法.mp3
名称:天猫推荐算法.pdf
名称:推荐系统入门.zip
名称:推荐系统实战经验与效果提升之道.pdf

文件名称:540135b87c6d0.csv
文件名称:5403c3df31780.doc
文件名称:baidu-salon-38-1.mp3
文件名称:baidu-salon-38-1.pdf
文件名称:TextAnalysis.rar
文件名称:train_data.txt
文件名称:中文停用词表(比较全面_有1208个停用词).txt
目录名称:主题提起
目录名称:协同过滤
文件名称:天猫推荐算法.mp3
文件名称:天猫推荐算法.pdf
文件名称:推荐系统入门.zip
文件名称:推荐系统实战经验与效果提升之道.pdf

文件名称:C:\
文件名称:D:\
文件名称:E:\
文件名称:F:\
文件名称:G:\
文件名称:H:\  

文件过滤例子:
 
  
package com.qunar.bean;
 
import java.io.File;
import java.io.FilenameFilter;
 
public class FileDemo {
public static void main(String[] args) {
String pathname = "E:\\Recommended system";
// 创建文件实例
File file = new File(pathname);
// 文件过滤
File[] files = file.listFiles(new FilenameFilter() {
@Override
public boolean accept(File file, String filename) {
return filename.endsWith(".mp3");
}
});
// 打印输出
for (File file2 : files) {
System.out.println("名称:"+file2.getName());
}//for
}
}

运行结果:

     名称:baidu-salon-38-1.mp3
     名称:天猫推荐算法.mp3
    名称:百度推荐实践.mp3  

列出文件夹下的全部问价或目录:
 
  
package com.qunar.bean;
 
import java.io.File;
 
public class FileDemo {
public static void ListAllFile(File file){
if(!file.exists()){
throw new IllegalArgumentException("目录["+file+"]不存在");
}//if
if(!file.isDirectory()){
throw new IllegalArgumentException("["+file+"]不是目录");
}//if
// 列出指定路径下的全部文件或目录
File[] files = file.listFiles();
for (File fileName : files) {
// 判断是否是目录 如果是递归
if(fileName.isDirectory()){
ListAllFile(fileName);
}//if
// 否则打印输出
else{
System.out.println(fileName.getPath());
}//else
}//for
}
public static void main(String[] args) {
String pathname = "E:\\Recommended system";
// 创建文件实例
File file = new File(pathname);
// 列出全部文件或目录
ListAllFile(file);
}
}

运行结果:


E:\Recommended system\540135b87c6d0.csv
E:\Recommended system\5403c3df31780.doc
E:\Recommended system\baidu-salon-38-1.mp3
E:\Recommended system\baidu-salon-38-1.pdf
E:\Recommended system\TextAnalysis.rar
E:\Recommended system\train_data.txt
E:\Recommended system\中文停用词表(比较全面_有1208个停用词).txt
E:\Recommended system\主题提起\中文新闻关键事件的主题句识别.pdf
E:\Recommended system\主题提起\加入时间因素的个性化信息过滤技术.pdf
E:\Recommended system\主题提起\动态新闻主题信息推荐系统设计.pdf
...
E:\Recommended system\协同过滤\PatternRecognitionAndMachineLearning.pdf
E:\Recommended system\协同过滤\一种改进的Item-based协同过滤推荐算法.pdf
E:\Recommended system\协同过滤\一种电影个性化推荐系统的研究与实现.pdf
E:\Recommended system\协同过滤\个性化搜索引擎中用户协作推荐算法的研究.pdf
E:\Recommended system\协同过滤\个性化新闻推荐引擎中新闻分组聚类技术的研究与实现.caj
E:\Recommended system\协同过滤\协同过滤技术在个性化推荐中的运用.pdf
E:\Recommended system\协同过滤\基于协同过滤的个性化新闻推荐系统的研究与实现.caj
E:\Recommended system\协同过滤\基于矩阵分解的协同过滤算法.pdf
....
E:\Recommended system\天猫推荐算法.mp3
E:\Recommended system\天猫推荐算法.pdf
E:\Recommended system\推荐系统入门.zip
. ....







目录
相关文章
|
1月前
|
安全 Oracle Java
JAVA高级开发必备·卓伊凡详细JDK、JRE、JVM与Java生态深度解析-形象比喻系统理解-优雅草卓伊凡
JAVA高级开发必备·卓伊凡详细JDK、JRE、JVM与Java生态深度解析-形象比喻系统理解-优雅草卓伊凡
163 0
JAVA高级开发必备·卓伊凡详细JDK、JRE、JVM与Java生态深度解析-形象比喻系统理解-优雅草卓伊凡
|
27天前
|
安全 IDE Java
Java记录类型(Record):简化数据载体类
Java记录类型(Record):简化数据载体类
273 120
|
2月前
|
并行计算 Java API
Java List 集合结合 Java 17 新特性与现代开发实践的深度解析及实战指南 Java List 集合
本文深入解析Java 17中List集合的现代用法,结合函数式编程、Stream API、密封类、模式匹配等新特性,通过实操案例讲解数据处理、并行计算、响应式编程等场景下的高级应用,帮助开发者提升集合操作效率与代码质量。
129 1
|
2月前
|
安全 Java API
Java 17 及以上版本核心特性在现代开发实践中的深度应用与高效实践方法 Java 开发实践
本项目以“学生成绩管理系统”为例,深入实践Java 17+核心特性与现代开发技术。采用Spring Boot 3.1、WebFlux、R2DBC等构建响应式应用,结合Record类、模式匹配、Stream优化等新特性提升代码质量。涵盖容器化部署(Docker)、自动化测试、性能优化及安全加固,全面展示Java最新技术在实际项目中的应用,助力开发者掌握现代化Java开发方法。
119 1
|
2月前
|
IDE Java API
Java 17 新特性与微服务开发的实操指南
本内容涵盖Java 11至Java 17最新特性实战,包括var关键字、字符串增强、模块化系统、Stream API、异步编程、密封类等,并提供图书管理系统实战项目,帮助开发者掌握现代Java开发技巧与工具。
144 1
|
1月前
|
移动开发 Cloud Native 安全
Java:跨平台之魂,企业级开发的磐石
Java:跨平台之魂,企业级开发的磐石
|
2月前
|
Java API
深入解析Java API中Object类的功能
了解和合理运用 Object类的这些方法,对于编写可靠和高效的Java应用程序至关重要。它们构成了Java对象行为的基础,影响着对象的创建、识别、表达和并发控制。
61 0
|
2月前
|
安全 Java
JAVA:Collections类的shuffle()方法
`Collections.shuffle()` 是 Java 中用于随机打乱列表顺序的工具方法,适用于洗牌、抽奖等场景。该方法直接修改原列表,支持自定义随机数生成器以实现可重现的打乱顺序。使用时需注意其原地修改特性及非线程安全性。
99 0
|
2月前
|
存储 Java 编译器
深入理解Java虚拟机--类文件结构
本内容介绍了Java虚拟机与Class文件的关系及其内部结构。Class文件是一种与语言无关的二进制格式,包含JVM指令集、符号表等信息。无论使用何种语言,只要能生成符合规范的Class文件,即可在JVM上运行。文章详细解析了Class文件的组成,包括魔数、版本号、常量池、访问标志、类索引、字段表、方法表和属性表等,并说明其在Java编译与运行过程中的作用。

热门文章

最新文章