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 ...
随机推荐
- 机器学习之scikit-learn库
前面讲到了,这个库适合学习,轻量级,所以先学它. 安装就不讲了,简单.不过得先安装numpy和pandas库才能安装scikit-learn库. 如果安装了anaconda得话,会自带有这个库. -- ...
- 大数据之路day02_1--运算符
运算符这一节主要是介绍算数运算符.赋值运算符.比较运算符.逻辑运算符.三元运算符.接下来一一介绍. 1.算数运算符 ++ 和 -- 的用法 例如:a++ 和 ++a的区别 %的应用场景(取模其实就是取 ...
- Linux中文件的SUID、SGID、Sticky权限说明
1.SUID 首先我们要了解,在Linux中启动一个程序或者启动一个进程是需要有用户的,一个文件的存在是要有用户和组的,一个进程启动后,它的属主取决于进程的发起者,比如 我用root用户启动了一个 c ...
- C语言程序设计100例之(10):最大公约数
例10 最大公约数 问题描述 有三个正整数a,b,c(0<a,b,c<10^6),其中c不等于b.若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c. 输入数据 第 ...
- 《计算机网络 自顶向下方法》 第3章 运输层 Part2
待补充完善 TCP 相关基本点 1.面向连接 两个不同主机上的进程在通过 TCP 进行通信之前,必须先通过三次握手来建立 TCP 连接 2.全双工服务 即,如果一台主机上的进程 A 与另一台主机上的进 ...
- arduino体感控制简单版
https://learn.sparkfun.com/tutorials/apds-9960-rgb-and-gesture-sensor-hookup-guide/all 硬件连线 关键 VCC= ...
- Asciinema文章勘误及Web端使用介绍
欠下的债迟早是要还的,查文档,重验证,出结果,不误导 文章勘误 在上一篇文章Asciinema:你的所有操作都将被录制中有两个地方表述有错误或瑕疵,这里更正一下 第一个地方为录制时的参数--stdin ...
- pat 1015 Reversible Primes(20 分)
1015 Reversible Primes(20 分) A reversible prime in any number system is a prime whose "reverse& ...
- webpack3、4的基本的使用方法
webpack的基本使用 webpack的安装 webpack的使用时需要借助 node 的环境的 在 node 中自动下载了 npm 这个包管理工具,之后的操作我们需要使用npm包管理工具进行相关操 ...
- 力扣(LeetCode)二进制求和 个人题解
给定两个二进制字符串,返回他们的和(用二进制表示). 输入为非空字符串且只包含数字 1 和 0. 示例 1: 输入: a = "11", b = "1" 输出: ...