此文参考自"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. 机器学习之scikit-learn库

    前面讲到了,这个库适合学习,轻量级,所以先学它. 安装就不讲了,简单.不过得先安装numpy和pandas库才能安装scikit-learn库. 如果安装了anaconda得话,会自带有这个库. -- ...

  2. 大数据之路day02_1--运算符

    运算符这一节主要是介绍算数运算符.赋值运算符.比较运算符.逻辑运算符.三元运算符.接下来一一介绍. 1.算数运算符 ++ 和 -- 的用法 例如:a++ 和 ++a的区别 %的应用场景(取模其实就是取 ...

  3. Linux中文件的SUID、SGID、Sticky权限说明

    1.SUID 首先我们要了解,在Linux中启动一个程序或者启动一个进程是需要有用户的,一个文件的存在是要有用户和组的,一个进程启动后,它的属主取决于进程的发起者,比如 我用root用户启动了一个 c ...

  4. C语言程序设计100例之(10):最大公约数

    例10        最大公约数 问题描述 有三个正整数a,b,c(0<a,b,c<10^6),其中c不等于b.若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c. 输入数据 第 ...

  5. 《计算机网络 自顶向下方法》 第3章 运输层 Part2

    待补充完善 TCP 相关基本点 1.面向连接 两个不同主机上的进程在通过 TCP 进行通信之前,必须先通过三次握手来建立 TCP 连接 2.全双工服务 即,如果一台主机上的进程 A 与另一台主机上的进 ...

  6. arduino体感控制简单版

    https://learn.sparkfun.com/tutorials/apds-9960-rgb-and-gesture-sensor-hookup-guide/all 硬件连线 关键 VCC=  ...

  7. Asciinema文章勘误及Web端使用介绍

    欠下的债迟早是要还的,查文档,重验证,出结果,不误导 文章勘误 在上一篇文章Asciinema:你的所有操作都将被录制中有两个地方表述有错误或瑕疵,这里更正一下 第一个地方为录制时的参数--stdin ...

  8. pat 1015 Reversible Primes(20 分)

    1015 Reversible Primes(20 分) A reversible prime in any number system is a prime whose "reverse& ...

  9. webpack3、4的基本的使用方法

    webpack的基本使用 webpack的安装 webpack的使用时需要借助 node 的环境的 在 node 中自动下载了 npm 这个包管理工具,之后的操作我们需要使用npm包管理工具进行相关操 ...

  10. 力扣(LeetCode)二进制求和 个人题解

    给定两个二进制字符串,返回他们的和(用二进制表示). 输入为非空字符串且只包含数字 1 和 0. 示例 1: 输入: a = "11", b = "1" 输出: ...