JavaSE常用类之File类
File类
只用于表示文件或目录的信息,不能对文件内容进行访问。
java.io.File类∶代表文件和目录。在开发中,读取文件、生成文件、删除文件、修改文件的属性时经常会用到本类。
File类不能访问文件内容本身,如果需要访问文件内容本身,则需要借助输入输出流。
一.创建文件对象
package Filel;
import java.io.File;
public class Filelfd {
public static void main(String[] args) {
//创建一个File对象
File file = new File("D:\\R");
System.out.println(file); //D:\R
//user.dir 用户目录
System.out.println(System.getProperty("user.dir")); //D:\JavaSE\OPP
}
}
二.创建文件
package Filel;
import java.io.File;
import java.io.IOException;
//假设要创建一个 zyx.txt 文件,程序启动时会检测该文件是否存在,如果不存在则创建;如果存在则删除它再创建。
public class Filelc {
public static void main(String[] args) throws IOException {
File file = new File("D:\\zyx.txt"); //创建file对象
if(file.exists()){ //判断文件是否存在
file.delete(); //删除文件
System.out.println("文件已删除");
}
//创建新的文件
try {
//创建新的文件
file.createNewFile(); //需要抛出
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("文件已重新创建");
}
}
三.查看文件属性
package Filel;
import java.io.File;
import java.util.Date;
//查看文件基本属性
public class Filefs {
public static void main(String[] args) {
String path1="D:\\SteamLibrary\\steamapps\\common\\Tricolour Lovestory\\savedata\\chs";
String path2="JavaSE";
showFileDetails(path1);
showFileDetails(path2);
}
public static void showFileDetails(String path){
File file = new File(path);
System.out.println("==========================================");
System.out.println("文件名字:"+file.getName());
System.out.println("文件长度:"+file.length()+"字节");
System.out.println((file.isDirectory()? "是目录" : "是文件" ));
System.out.println((file.canRead()? "能读" : "不能读" ));
System.out.println((file.canWrite()? "能写" : "不能写" ));
System.out.println((file.isHidden()? "隐藏" : "没隐藏" ));
System.out.println("文件路径:"+file.getPath());
System.out.println("文件带域名的完整路径:"+file.getAbsolutePath());
System.out.println("服务器端文件的最后修改时间:"+new Date(file.lastModified()));
System.out.println("==========================================");
}
}
四.文件修改、查看、删除等。
1.递归遍历输出目录文件
通过遍历目录可以在指定的目录中查找文件,或者显示所有的文件列表。File 类的 list() 方法提供了遍历目录功能,该方法有如下两种重载形式。
String[] list():该方法表示返回由 File 对象表示目录中所有文件和子目录名称组成的字符串数组,如果调用的 File 对象不是目录,则返回 null。
String[] list(FilenameFilter filter):该方法的作用与 list() 方法相同,不同的是返回数组中仅包含符合 filter 过滤器的文件和目录,如果 filter 为 null,则接受所有名称。
使用过滤器输出指定的文件,假设希望只列出目录下的某些文件,这就需要调用带过滤器参数的 list() 方法。首先需要创建文件过滤器,该过滤器必须实现 java.io.FilenameFilter 接口,并在 accept() 方法中指定允许的文件类型。
2.delete和deleteOnExit方法的区别。
delete()方法:当调用delete()方法时,直接删除文件,不管该文件是否存在,一经调用立即执行;
deleteOnExit()方法:即该方法是将删除的命令缓存了一下,到服务停止的时候再进行操作
file.deleteOnExit();
file.createNewFile();
此处的deleteOnExit()是在JVM退出的时候才执行的,因此相当于是先调用了createNewFile()再调用deleteOnExit();
package Filel;
import java.io.File;
import java.io.FilenameFilter;
public class Filexg {
public static void main(String[] args) {
File file = new File("D:\\www\\zys.txt");
//设置文件只读(只能打开来观看,不能修改也不能储存)
//该方法返回布尔数据类型。如果File对象可以设置为Read Only,则该函数返回true,否则返回false。
System.out.println(file.setReadOnly());
//文件重命名
//该方法返回布尔数据类型。如果File对象修改成功,则该函数返回true,否则返回false。
File dest = new File("D:\\www\\zyl.txt");
boolean b = file.renameTo(dest); //修改file对象名字
System.out.println(b);
//文件删除
File l = new File("D:\\www\\zzx.txt");
l.deleteOnExit();
File dir = new File("D:\\www");
//目录的创建
// dir.mkdirs();//可以创建多级目录
dir.mkdir();//只能创建一级目录
//目录的读取
System.out.println("修改时间:"+dir.lastModified());
System.out.println("目录路径:"+dir.getPath());
System.out.println("目录名:"+dir.getName());
//目录名修改
dir.renameTo(new File("D:\\www22"));
//目录删除
dir.deleteOnExit();
//***递归遍历输出目录文件****
//获取当前目录下的所有文件及文件名
File hx = new File("D:\\www22");
String[] paths = hx.list();
for (String path : paths) {
System.out.println(path);
}
System.out.println("===============================");
//)获取指定目录所有文件带域名完整目录对象
File[] fs = hx.listFiles();
for(File f: fs){
System.out.println(f);
}
//获取指定格式的文件信息
//过滤器
File[] files = hx.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.startsWith("z");
}
});
for (File ol : files) {
System.out.println(ol.getName()+" : "+ol.getPath());
}
}
}
五.枚举
enum 枚举名 {
枚举体(常量列表)
}
当你需要定义一组常量时,可以使用枚举类型
package Filel;
import java.util.Random;
//枚举
public class Filemeiju {
enum Week {
周一, 周二, 周三, 周四, 周五, 周六,周日
}
public static void main(String[] args) {
//Week.values()相当于数组名字 = args
//Week.values()[i]=args[i]
//Week.values().for
for (Week value : Week.values()) {
System.out.print(value+" ");
}
System.out.println();
System.out.println("############################");
Random random = new Random();
int i= random.nextInt(7);
System.out.println(i);
switch (Week.values()[i]){
case 周一:
System.out.println("周一啦");
break;
case 周二:
System.out.println("周二啦");
break;
case 周三:
System.out.println("周三啦");
break;
case 周四:
System.out.println("周四啦");
break;
case 周五:
System.out.println("周五啦");
break;
case 周六:
System.out.println("周六啦");
break;
case 周日:
System.out.println("周日啦");
break;
}
}
}
JavaSE常用类之File类的更多相关文章
- C#文件操作常用相关类(Directory类、File类、Path类)
1.文件操作常用相关类 1)File //操作文件,静态类,对文件整体操作.拷贝.删除.剪切等 2)Directory //操作目录(文件夹),静态类 3)DirectoryInfo //文件夹的一个 ...
- -1-4 java io java流 常用流 分类 File类 文件 字节流 字符流 缓冲流 内存操作流 合并序列流
File类 •文件和目录路径名的抽象表示形式 构造方法 •public File(String pathname) •public File(String parent,Stringchild) ...
- Java常用类之File类
File 类: 1. java.io.File 类代表系统文件名(路径名.文件名); 2. File 类常见的构造方法: 2.1. File(String pathname):通过将给定路径名字符串转 ...
- .net学习之集合、foreach原理、Hashtable、Path类、File类、Directory类、文件流FileStream类、压缩流GZipStream、拷贝大文件、序列化和反序列化
1.集合(1)ArrayList内部存储数据的是一个object数组,创建这个类的对象的时候,这个对象里的数组的长度为0(2)调用Add方法加元素的时候,如果第一次增加元神,就会将数组的长度变为4往里 ...
- Path类和File类的应用
今天是我学习C#基础的第13天,可以说马上就要结束这个基础课程,感觉学习的理论性的我不能说全部掌握了,我只想说在思路上面的语法以及用法我应该基本掌握了,感觉效果不错,不得不说,要想在一种语言上面有大的 ...
- 在外部存储器上写入或读取文件(Environment类、File类的使用)
1.Environment类 简单介绍:http://www.cnblogs.com/mengdd/p/3742623.html 详细介绍:http://www.2cto.com/kf/201408/ ...
- Path类与Directory类与File类
阅读目录 开始 Path 对路径 字符串进行操作 获得后缀 能合并路径 获取文件名 Directory和DirectoryInfo 对目录进行操作 判断目录是否存在 创建目录 删除目录 获取目录下所 ...
- Java基础IO类之File类
大三了,目前基础太差了,重新学习过!代码如下,里面都有详细的解释每一行代码代表的意思~ package IODemo; import java.io.File; import java.io.File ...
- JavaIO之File类
Java-IO之File类 Java-IO之File类 1. File类 1.1. File类说明 1.2. 体验 File 类 1.3. 构造一个 File 类实例: 1.4. 路径: 1.4.1. ...
随机推荐
- 自己的markdown笔记
markdown一些语法 记录自己会用的一些markdown语法,不定期更新,用的软件是hroopad,hroopad下载地址点击跳转.这个书写软件对新手还有中文用户比较友好,左边是markdown语 ...
- ModSecurity的规则
一.ModSecurity的规则 基本格式 SecRule VARIABLES OPERATOR ACTIONS SecRule:ModSecurity主要的指令,用于创建安全规则. VARIABLE ...
- 洛谷P1091 [NOIP2004 提高组] 合唱队形
本题是一个简单的 LIS(最长上升子序列)问题 只是要求俩次最长上子序列而已 很容易的 首先由于是最长上升子序列 所以朴素法的动态规划表达式为 f[i] = max( f[i] , f[ ...
- 如何在不使用BasePACKAGE过滤器的情况下排除程序包?
过滤程序包的方法不尽相同.但是弹簧启动提供了一个更复杂的选项,可以在不接触组件扫描的情况下实现这一点. 在使用注释@ SpringBootApplication时,可以使用排除属性. 请参阅下面的代码 ...
- redis 淘汰策略有哪些?
noeviction: 不删除策略, 达到最大内存限制时, 如果需要更多内存, 直接返回错误信息. 大多数写命令都会导致占用更多的内存(有极少数会例外, 如 DEL ). allkeys-lru: 所 ...
- Zookeeper Watcher 机制 -- 数据变更通知 ?
Zookeeper 允许客户端向服务端的某个 Znode 注册一个 Watcher 监听,当服务 端的一些指定事件触发了这个 Watcher,服务端会向指定客户端发送一个事件通 知来实现分布式的通知功 ...
- 解释 Java 堆空间及 GC?
当通过 Java 命令启动 Java 进程的时候,会为它分配内存.内存的一部分用于 创建堆空间,当程序中创建对象的时候,就从对空间中分配内存.GC 是 JVM 内 部的一个进程,回收无效对象的内存用于 ...
- Java 死锁以及如何避免?
Java 中的死锁是一种编程情况,其中两个或多个线程被永久阻塞,Java 死锁情况 出现至少两个线程和两个或更多资源. Java 发生死锁的根本原因是:在申请锁时发生了交叉闭环申请.
- Linux 中进程有哪几种状态?在 ps 显示出来的信息中, 分别用什么符号表示的?
1.不可中断状态:进程处于睡眠状态,但是此刻进程是不可中断的.不可中断, 指进程不响应异步信号. 第 441 页 共 485 页2.暂停状态/跟踪状态:向进程发送一个 SIGSTOP 信号,它就会因响 ...
- 与和或(&&和||)比较的区别
&&(短路与)和&(逻辑与)的时候: 有假则为假,全真则为真(有假必假,全真为真) ||(短路或)和|(逻辑或)的时候: 有真则为真,全假则为假(有真必真,全假为假)