此文参考自"Java SE程序设计"

   编著: 青岛东合信息技术有限公司

算是做笔记,以后想看可以翻阅,顺便分享出来大家可以参照.如有侵权,请联系本人删除

文件

  文件是相关记录或放在一起的集合,可以存储在硬盘,光盘,移动存储设备上,存储形式是文本文档,图片,程序等,在编程的过程中经常会对文件进行各种的处理

file类

  java.io提供了一系列的类用于对底层系统中的文件进行处理.其中File类是最重要的一个类,该类可以获取文件信息,也可以对文件进行管理.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对象不但可以表示一个文件,还可以表示某个目录.

File类的list方法
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
具有过滤条件的list方法
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类的更多相关文章

  1. Java基础之File类的使用

    Java基础之File类的使用 1.File类的构造方法和常用方法 2.对File中listFile(FileNameFilter name)学习 3.与File文件类相关的实现 File类的构造方法 ...

  2. 黑马程序员——【Java基础】——File类、Properties集合、IO包中的其他类

    ---------- android培训.java培训.期待与您交流! ---------- 一.File类 (一)概述 1.File类:文件和目录路径名的抽象表现形式 2.作用: (1)用来将文件或 ...

  3. 黑马程序员——JAVA基础之File类,递归,打印流,合并切割流

    ------- android培训.java培训.期待与您交流! ---------- File类 用来将文件或者文件夹封装成对象 方便对文件与文件夹的属性信息进行操作. File对象可以作为参数传递 ...

  4. java基础42 File类的构造函数及其方法

    本文知识点(目录): 1.IO流(Input Output)    2.IO流技术的运用场景    3.File类的构造函数(方法)    4.File类的一些常用方法    5.实例(解析File类 ...

  5. JAVA基础之File类

    个人理解: File是个文件类,可以用其增加.删除.查找某种类型的文件或者文件夹,同时根据其成员变量的特点可以综合利用,避免出现跨系统的时候出现错误,并且查找时最好输入绝对路径,以免出现不存在的文件. ...

  6. Java基础教程——File类、Paths类、Files类

    File类 File类在java.io包中.io代表input和output,输入和输出. 代表与平台无关的文件和目录. 可以新建.删除.重命名,但不能访问文件内容. File类里的常量: impor ...

  7. JAVA基础——文件File简单实用

    1.1java.io.File File用于表示文件系统中的一个文件或目录 通过File可以: 1:访问该文件或目录的属性信息(名字,大小,修改时间等) file.getName();获取文件名fil ...

  8. 【56】java本地文件File类详解

    1.java类的介绍 public class File extends Object implements Serializable, Comparable<File> 文件和目录路径名 ...

  9. java学习一目了然——File类文件处理

    java学习一目了然--File类文件处理 File类(java.io.File) 构造函数: File(String path) File(String parent,String child) F ...

随机推荐

  1. 微服务架构~Zuul1.0和2.0我们该如何选择?

    介绍 在今年5月中,Netflix终于开源了它的支持异步调用模式的Zuul网关2.0版本,真可谓千呼万唤始出来.从Netflix的官方博文[附录1]中,我们获得的信息也比较令人振奋: The Clou ...

  2. Linux | 性能分析系列学习 (2)

    常分析方法: 1.监控大盘,是否异常报警 2..平均负载情况,(top    /    htop )平均负载体现的是系统的一个整体情况,他应该是cpu.内存.磁盘性能的一个综合,一般是平均负载的值大于 ...

  3. Android9.0 SystemUI 网络信号栏定制修改

    前情提要 Android 8.1平台SystemUI 导航栏加载流程解析 9.0 改动点简要说明 1.新增 StatusBarMobileView 替代 SignalClusterView,用以控制信 ...

  4. Scrapy简单上手 —— 安装与流程

    一.安装scrapy 由于scrapy依赖较多,建议使用虚拟环境 windows下pip安装(不推荐) 1.安装virtualenv pip install virtualenv 2.在你开始项目的文 ...

  5. MySQL57安装与设置

    安装MySQL 添加mysql源 [root@localhost ~]# rpm -ivh http://repo.mysql.com//mysql57-community-release-el7-7 ...

  6. Python 基础之re 模块

    Python 基础之大话 re 在使用re模块中主要会用到一下几个方法: re.match() #从头匹配一个字符串 re.search() #浏览全部字符串,匹配第一个符合规则的字符串 re.fin ...

  7. FreeSql v0.11 几个实用功能说明

    FreeSql 开源发布快一年了,立志成为 .Net 平台方便好用的 ORM,仓库地址:https://github.com/2881099/FreeSql 随着不断的迭代更新,越来越稳定,也越来越强 ...

  8. sql注入基本原理

    SQL注入基本原理 WEB技术发展日新月异,但是徒手拼SQL的传统手艺还是受相当多的开发者亲睐.毕竟相比于再去学习一套复杂的ORM规则,手拼更说方便,直观.通常自己拼SQL的人,应该是有听说过SQL注 ...

  9. RevitAPI 隐藏UI读取Revit文件

    1.1. 新建一个控制台项目 1.2. 添加Revit API引用 我们找到revit安装目录下的这两个DLL添加到项目引用中 RevitNET.dll RevitAPI.dll 修改属性:复制本地: ...

  10. Previous operation has not finished; run 'cleanup' if it was interrupted最简单有效的解决方法

    今天提交代码报错,看了看提示的错误,百度了一下,发现操作都比较繁琐,所以自己重新给一个最简单有效的. 有的要下载sqlite3.exe,借助它清空本地.svn\wc.db数据库文件里面的operati ...