java基础文件,File类
此文参考自"Java SE程序设计"
编著: 青岛东合信息技术有限公司
算是做笔记,以后想看可以翻阅,顺便分享出来大家可以参照.如有侵权,请联系本人删除
文件
文件是相关记录或放在一起的集合,可以存储在硬盘,光盘,移动存储设备上,存储形式是文本文档,图片,程序等,在编程的过程中经常会对文件进行各种的处理
file类
java.io提供了一系列的类用于对底层系统中的文件进行处理.其中File类是最重要的一个类,该类可以获取文件信息,也可以对文件进行管理.File对象既可以表示文件,也可以表示目录,利用这一特性可以对文件,目录及其属性进行基本操作.File类提供了许多的方法,通过方法可以获得与文件相关的信息,如名称,最后修改日期,文件大小等.
| File(String pathname) | 构造方法,用于创建一个指定路径名的File对象 |
| boolean canRead() | 判断文件或者目录是否可读 |
| boolean createNewFile() | 自动创建一个File对象指定文件名的空文件,只有在指定文件名文件不存在的时候才能成功 |
| boolean delete() | 删除File对象,对应的文件或目录 |
| boolean exists() | 判断File对象对应的文件或目录是否存在 |
| String getAbsolutePath() | 获取File对象对应的文件或目录的绝对路径 |
| String getName() | 获取File对象对应的文件或目录的名称 |
| String getPath() | 获取File对象对应的文件或目录的路径 |
| boolean isDirectory() | 判断File对象指向的是否为一个目录 |
| boolean isFile() | 判断File对象指向的是否为一个文件 |
| long length() | 返回File对象指向的文件大小,单位为字节 |
| boolean mkdir() | 新建一个File对象所定义的一个路径,如果新建成功,返回true,否则返回false,此时File对象必须是目录对象 |
| boolean renameTo(File dest) | 重命名File对象对应的文件,如果命名成功,返回true,否则返回false |
| long lastModified() | 返回File对象的最后一次被修改时间 |
例子:对File常用方法的部分使用
package file类; import java.io.*;
import java.util.*;
public class FlieDemo {
public static void main(String args[]) {
System.out.println("请输入文件名:");
Scanner sanner = new Scanner(System.in);
//从控制台输入文件路径名
String pathName = sanner.next();
//根据路径字符串创建一个File对象
File file = new File(pathName);
//如果文件不存在,则创建一个
if(!file.exists()) {
try {
file.createNewFile();
}catch(IOException e) {
e.printStackTrace();
}
}
System.out.println("文件是否存在:"+file.exists());
System.out.println("是文件么:"+file.isFile());
System.out.println("是目录么:"+file.isDirectory());
System.out.println("名称:"+file.getName());
System.out.println("路径:"+file.getPath());
System.out.println("绝对路径:"+file.getAbsolutePath());
System.out.println("最后修改的时间:"+new Date(file.lastModified()).toString());
System.out.println("文件大小:"+file.length());
}
}
执行结果
请输入文件名:
text.txt
文件是否存在:true
是文件么:true
是目录么:false
名称:text.txt
路径:text.txt
绝对路径:C:\Users\Administrator\eclipse-workspace\File类的使用\text.txt
最后修改的时间:Sun Jun 10 16:10:38 CST 2018
文件大小:0
注意:File对象只是一个引用,他可能指向一个存在的文件,也可能指向一个不存在的文件,并且File对象不但可以表示一个文件,还可以表示某个目录.
| String[] list() | 当File对象为目录时,返回该目录下的所有文件及子目录 |
| File[] listFiles() | 返回File对象对应路径下的所有文件所有文件对象数组 |
举例:将JDK根目录下的目录或文件的名称列举出来
package file类的list方法; import java.io.File;
public class ListDemo {
public static void main(String args[]) {
//根据路径名称创建File对象
File file = new File("F:\\Java\\jdk1.8.0_91");
//得到文件名列表
if(file.isDirectory()) {
String[] fileNames = file.list();
//利用for-each打印各个名称
for(String fileName: fileNames) {
System.out.println(fileName);
}
}
}
}
上述代码中路径字符串双斜杠解释:"\\",第一个"\"是转义符,第二个"\"是反斜杠
执行结果
bin
COPYRIGHT
db
include
javafx-src.zip
jre
lib
LICENSE
README.html
release
src.zip
THIRDPARTYLICENSEREADME-JAVAFX.txt
THIRDPARTYLICENSEREADME.txt
看结果:list()方法将JDK根目录的文件或目录都列举出来了,但是没有标明哪个是目录,哪个是文件.
例子:用listFile()方法将JDK将根目录文件和目录都列举出来并标明
package file类的list方法; import java.io.File;
public class ListFlieDemo {
public static void main(String args[]) {
//根据路径名称创建File对象
File file = new File("F:\\Java\\jdk1.8.0_91");
//得到文件名列表
if(file.isDirectory()) {
File[] files = file.listFiles();
//利用for-each获取每一个File 对象
for(File f : files) {
if(f.isFile())
System.out.println("文件:"+f);
else
System.out.println("目录:"+f);
}
}
}
}
执行结果
目录:F:\Java\jdk1.8.0_91\bin
文件:F:\Java\jdk1.8.0_91\COPYRIGHT
目录:F:\Java\jdk1.8.0_91\db
目录:F:\Java\jdk1.8.0_91\include
文件:F:\Java\jdk1.8.0_91\javafx-src.zip
目录:F:\Java\jdk1.8.0_91\jre
目录:F:\Java\jdk1.8.0_91\lib
文件:F:\Java\jdk1.8.0_91\LICENSE
文件:F:\Java\jdk1.8.0_91\README.html
文件:F:\Java\jdk1.8.0_91\release
文件:F:\Java\jdk1.8.0_91\src.zip
文件:F:\Java\jdk1.8.0_91\THIRDPARTYLICENSEREADME-JAVAFX.txt
文件:F:\Java\jdk1.8.0_91\THIRDPARTYLICENSEREADME.txt
| String[] list(FilenameFilter filter) | 返回一个字符串数组,这些字符串为此File对象对应的目录中满足指定过滤条件的文件和子目录 |
| File[] listFiles(FilenameFilter filter) | 返回File对象数组,这些File对象为此File对象对应的目录中满足指定过滤条件的文件和子目录 |
注意:FileNameFilter是一个接口,她只有一个accept()方法,所以只需要定义一个类来实现这个接口,或者可以定义一个匿名类.
举例:利用list()方法列举JDK根目录下的所有以html或htm为后缀的网页文件
package file类的list方法; import java.io.*;
public class HtmlList {
public static void main(String args[]) {
//根据路径名称创建File对象
File file = new File("F:\\Java\\jdk1.8.0_91");
//得到文件名列表
if(file.exists() && file.isDirectory()) {
//创建FileNameFilter类型的匿名类,并作为参数传入到list方法中
String[] fileNames = file.list(new FilenameFilter() {
public boolean accept(File dir,String name) {
//如果文件的后缀名为.html或.htm则满足条件
return (name.endsWith(".html") || name.endsWith(".htm"));
}
});
for(String fileName: fileNames) {
System.out.println(fileName);
}
}
}
}
执行结果
README.html
java基础文件,File类的更多相关文章
- Java基础之File类的使用
Java基础之File类的使用 1.File类的构造方法和常用方法 2.对File中listFile(FileNameFilter name)学习 3.与File文件类相关的实现 File类的构造方法 ...
- 黑马程序员——【Java基础】——File类、Properties集合、IO包中的其他类
---------- android培训.java培训.期待与您交流! ---------- 一.File类 (一)概述 1.File类:文件和目录路径名的抽象表现形式 2.作用: (1)用来将文件或 ...
- 黑马程序员——JAVA基础之File类,递归,打印流,合并切割流
------- android培训.java培训.期待与您交流! ---------- File类 用来将文件或者文件夹封装成对象 方便对文件与文件夹的属性信息进行操作. File对象可以作为参数传递 ...
- java基础42 File类的构造函数及其方法
本文知识点(目录): 1.IO流(Input Output) 2.IO流技术的运用场景 3.File类的构造函数(方法) 4.File类的一些常用方法 5.实例(解析File类 ...
- JAVA基础之File类
个人理解: File是个文件类,可以用其增加.删除.查找某种类型的文件或者文件夹,同时根据其成员变量的特点可以综合利用,避免出现跨系统的时候出现错误,并且查找时最好输入绝对路径,以免出现不存在的文件. ...
- Java基础教程——File类、Paths类、Files类
File类 File类在java.io包中.io代表input和output,输入和输出. 代表与平台无关的文件和目录. 可以新建.删除.重命名,但不能访问文件内容. File类里的常量: impor ...
- JAVA基础——文件File简单实用
1.1java.io.File File用于表示文件系统中的一个文件或目录 通过File可以: 1:访问该文件或目录的属性信息(名字,大小,修改时间等) file.getName();获取文件名fil ...
- 【56】java本地文件File类详解
1.java类的介绍 public class File extends Object implements Serializable, Comparable<File> 文件和目录路径名 ...
- java学习一目了然——File类文件处理
java学习一目了然--File类文件处理 File类(java.io.File) 构造函数: File(String path) File(String parent,String child) F ...
随机推荐
- python私有变量的分类
- js内容溢出用省略号(...)表示
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- javascript关于box2djs和matterjs之间的选择
javascript关于box2djs和matterjs之间的选择box2djs资料少很多时候需要看c++版本资料 然后转化成js 还有转化成像素坐标不准确 matterjs文档丰富 上手容易 建议用 ...
- T-SQL Part X: UNION, EXCEPT and INTERSECT
MSDN上关于EXCEPT和INTERSECT的文档.MSDN上关于UNION的文档. 值得注意的是,UNION其实有两种,一种是普通的UNION,另外一种是UNION ALL.加上EXCEPT和IN ...
- 插入订单并且输出订单号的sql存储过程
--插入订单-- create proc InsertOrders ( @OrderNumber varchar(300), @OrderState varchar(30), @OrderType v ...
- 力扣(LeetCode)删除排序链表中的重复元素II 个人题解
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 思路和上一题类似(参考 力扣(LeetCode)删除排序链表中的重复元素 个人题解)) 只不过这里需要用到一个前 ...
- web前端面试经常遇得到的题型
1.position的值, relative和absolute分别是相对于谁进行定位的? § absolute :生成绝对定位的元素, 相对于最近一级的 定位不是 static 的父元素来进行定位. ...
- MAC OS下编译apple跨平台的libevent库 (可延申到其它第三库)
apple下的跨平台是指不同设备上的苹果系统以及同一系统在不同cpu体系的不同版本. 前面一篇介绍如何用ndk编译android跨平台的第三库,那样的方法却不能应用在apple上. 网上可以找到这么一 ...
- Linux下的磁盘分区,和创建文件系统(理论及实战)
首先我们先了解一下磁盘的原理 磁盘的数据结构有: 扇区:盘片被分为多个扇形区域,每一个扇区存放512个字节的数据 磁道:同一个盘片不同半径的同心圆 柱面:不同盘片相同半径构成的圆柱面 公式: 磁盘存储 ...
- openresty如何完美替换nginx
下载openresty wget https://openresty.org/download/openresty-1.15.8.1.tar.gz tar zxvf openresty-1.15.8. ...