创建File

  isFile()、length()、exists()、createNewFile()、

  File.separator /

  isDirtory()、 mkdir()、mkdirs()、 delete()、

  listFiles()、FileFilter(){};

-------------------------------淫荡分隔----------------------------------

创建File文件对象

java.io.File用于表示文件(目录),也就是说程序员可以通过File类在程序中操作硬盘上的文件和目录。

File类只用于表示文件(目录)的信息(名称、大小等),换句话说只能访问文件或目录的相关属性,不能对文件的内容进行访问。

public class Filedemo1 {
public static void main(String[] args) {
// java.io.File 判断是否为文件
File file= new File("./1.txt"); boolean isFile = file.isFile();
if(isFile){
System.out.println("是一个文件");
}else{
System.out.println("不是一个文件");
} /*
* 查看文件占用的字节量 注意目录无大小
*
*/
long length =file.length();
System.out.println("占用"+length+"字节");
/*
* 查看File描述文件或目录是否为真实存在
*/
boolean exists = file.exists(); if(exists){
System.out.println("存在"); }else{
System.out.println("不存在");
}
}
class FileDemo2{
public static void main(String[] args) throws IOException {
/*
* 在当前项目根目录下创建文件test.txt
*
*/
//使用一个File对象描述该文件
// File.separator 代替/
File file= new File("."+File.separator+"2.txt");
//判断该文件是否在硬盘中不存在
if(!file.exists()){
//创建该文件
file.createNewFile();
}
System.out.println(file.exists());
}
}

File表示目录信息
1. isDirectory()

File的isDirectory方法用于判断当前File对象表示的是否为一个目录

2. mkdir方法

File的mkdir方法用于创建此抽象路径名指定的目录。其方法定义:
boolean mkdir()
返回值:当且仅当已创建目录时,返回 true;否则返回 false
3. mkdirs方法

File的mkdirs方法用于创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。注意,此操作失败时也可能已经成功地创建了一部分必需的父目录。其方法定义:
boolean mkdirs()
返回值:当且仅当已创建目录以及所有必需的父目录时,返回 true;否则返回 false

class FileDemo3{
public static void main(String[] args) {
/*
* 在当前目录下创建a/b/c目录
*
*/
File dir = new File("a"+File.separator+"b"+File.separator+"c"); if(!dir.exists()){
dir.mkdirs();
} System.out.println(dir.exists());
}
}

4. delete方法

在删除目录时要特别注意:需要保证此为空目录才可以成功删除(目录中不能含有任何子项)。
5. listFiles方法

File的listFiles方法用于返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。其方法定义:
File[] listFiles()
返回值:抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件和目录。如果目录为空,那么数组也将为空。如果抽象路径名不表示一个目录,或者发生 I/O 错误,则返回 null。

class FileDemo7{
public static void main(String[] args) {
/*
* 输出当前目录下的所有子项
*/
File dir =new File(".");
if(dir.isDirectory()){
//获取当前目录下的所有子项
File[] subs =dir.listFiles();
for(File sub : subs){
/*
* File 提供一个方法用于获取文件或目录的名字
* String getName()
*/
if(sub.isFile()){
System.out.println("文件"+ sub.getName());
}else{
System.out.println("目录"+ sub.getName()); } }
}
}
}

6. FileFilter接口

通过listFiles方法我们可以获取一个目录下的所有子项,但有些时候我们并不希望获取全部子项,而是想获取部分满足我们实际需求的子项时,我们可以使用File的重载方法:
File[] listFiles(FileFilter filter)
这里我们看到,该重载方法 要求我们传入一个参数,其类型是FileFilter。什么是FileFilter呢? FileFilter是用于抽象路径名的过滤器,说白了就是定义一个规律规则,那么结合listFiles方法,我们就可以将满足此过滤规则的子项返回,其他则忽略。
FileFilter是一个接口,所以当我们需要定义某种过滤规则时,我们可以定义一个类来实现这个接口,而此接口的实例可传递给 File 类的 listFiles(FileFilter) 方法。
例如:

File[] list = dir.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.getName().startsWith(".");
}
});
/**
* 获取一个目录下满足条件的子项
* @author Administrator
*
*/
class FileDemo9{
public static void main(String[] args) {
/*
* 获取当前目录下所有的文本文件
* 目标:获取名字是以txt结尾的
*/
File dir = new File(".");
FileFilter filter = new FileFilter() { /**
* 文件过滤器
*/ @Override
public boolean accept(File file) {
/*
* 该方法是用来检查参数File是否符合要求的、
* 符合返回true
*/
System.out.println("过滤子项:"+file.getName());
return file.getName().endsWith(".txt");
}
};
/*
* 重载的listFile 方法
* File[] listFile(FileFilter filter)
* 返回当前目录下满足给定过滤器条件的子项
*/
File[] subs= dir.listFiles(filter);
for(File sub: subs){
System.out.println(sub.getName());
}
}
}

该方法的参数FileFilter实例的accept方法并进行过滤,listFiles方法会将所有accept方法返回true的子项保留并返回。这个例子里我们会将dir中子项的名字以"."开头的返回。

Java文件操作——File的更多相关文章

  1. Java 文件操作-File

    1.File文件操作 java.io.File用于表示文件(目录),也就是说程序员可以通过File类在程序中操作硬盘上的文件和目录.File类只用于表示文件(目录)的信息(名称.大小等),不能对文件的 ...

  2. java文件操作File类

    1.文件路径操作 测试方法 @Test public void test5() { StringBuffer succBuffer = new StringBuffer("D:\\home\ ...

  3. 14、Java文件操作stream、File、IO

    1.文件操作涉及到的基本概念 File File类 是文件操作的主要对象中文意义就是 文件 顾名思意 万物皆文件,在计算上看到的所有东西都是文件保存,不管是你的图片.视频.数据库数据等等都是按照基本的 ...

  4. JAVASE02-Unit06: 文件操作——File 、 文件操作—— RandomAccessFile

    Unit06: 文件操作--File . 文件操作-- RandomAccessFile java.io.FileFile的每一个实例是用来表示文件系统中的一个文件或目录 package day06; ...

  5. Java文件操作源码大全

    Java文件操作源码大全 1.创建文件夹 52.创建文件 53.删除文件 54.删除文件夹 65.删除一个文件下夹所有的文件夹 76.清空文件夹 87.读取文件 88.写入文件 99.写入随机文件 9 ...

  6. Java 文件操作大全

    Java 文件操作大全 //1.创建文件夹 //import java.io.*; File myFolderPath = new File(str1); try { if (!myFolderPat ...

  7. JAVA文件操作类和文件夹的操作代码示例

    JAVA文件操作类和文件夹的操作代码实例,包括读取文本文件内容, 新建目录,多级目录创建,新建文件,有编码方式的文件创建, 删除文件,删除文件夹,删除指定文件夹下所有文件, 复制单个文件,复制整个文件 ...

  8. java文件操作(普通文件以及配置文件的读写操作)

    转自:java文件操作(普通文件以及配置文件的读写操作) 读取普通文件 : /** * xiangqiao123欢迎你 如果对代码有疑问可以加qq群咨询:151648295 * * 读取MyFile文 ...

  9. Java文件操作API功能与Windows DOS命令和Linux Shell 命令类比

    Java文件操作API功能与Windows DOS命令和Linux Shell 命令类比: Unix/Linux (Bash) Windows(MS-DOS) Java 进入目录 cd cd - 创建 ...

随机推荐

  1. POJ 2643 Election map

    POJ 2643 Election 第一次写博客,想通过写博客记录自己的ACM历程,也想解释下英文题目,写些自己的理解.也可以让自己以后找题目更加方便点嘛.ElectionTime Limit: 10 ...

  2. codeforces 822 C. Hacker, pack your bags!(思维+dp)

    题目链接:http://codeforces.com/contest/822/submission/28248100 题解:多维的可以先降一下维度sort一下可以而且这种区间类型的可以拆一下区间只要加 ...

  3. Maximum Product UVA - 11059

    Given a sequence of integers S = {S1, S2, . . . , Sn}, you should determine what is the value of the ...

  4. Wamp 新增php版本 教程

    a.php版本下载:https://windows.php.net/download b.如果是apache环境下请认准  Thread Safe  版本 下载解压zip c.调整文件名为 php7. ...

  5. Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.apache.catalina.connector.CoyoteWriter and no properties discovered to create BeanSerializer

    一.什么是序列化In computer science, in the context of data storage, serialization is the process of transla ...

  6. WebService学习二

    了解了webservice的基础知识之后,我们来编写一个服务端和客户端,进行测试. 服务端 先写一个接口: @WebService public interface WebServiceI { //使 ...

  7. rabbitmq+haproxy+keepalived高可用集群环境搭建

    1.先安装centos扩展源: # yum -y install epel-release 2.安装erlang运行环境以及rabbitmq # yum install erlang ... # yu ...

  8. 怎么在本地建立一个Maven 项目push到码云(https://git.oschina.net)

    本地建立一个的mvan项目不使用SmartGit push到码云上. 1 首先在自己码云的建立一个maven 空项目 2 然后打开STS(Spring Tool Suite)   新建一个Maven( ...

  9. Redis 的底层数据结构(字典)

    字典相对于数组,链表来说,是一种较高层次的数据结构,像我们的汉语字典一样,可以通过拼音或偏旁唯一确定一个汉字,在程序里我们管每一个映射关系叫做一个键值对,很多个键值对放在一起就构成了我们的字典结构. ...

  10. [VB.NET Tips]为VB.NET正名

    前言 我于2005年毕业,正值全国上上下下如火如荼的开展企业信息化的时代,正是大规模软件开发的年代. 那时.NET 已经发布了2.0,但是仍是VB6,Delphi,PowerBuilder的天下,是E ...