文件的创建:

package file;

import java.io.File;

import java.io.IOException;

/*

create:创建

new:新

file:文件

使用File新建一个文件

/

public class CreateNewFileDemo {

public static void main(String[] args) throws IOException {

//在当前项目目录下新建一个文件:test.txt

//1创建一个File表示要创建的文件

File file = new File("./test.txt");

//2判断该位置下是否已经存在了这个文件或目录

/


boolean exists()

判断当前File表示的文件或目录是否真实存在,存在则返回true

/

if(file.exists()){

System.out.println("该文件已存在");

}else{

//3将该文件创建出来

/


createNewFile方法的作用是将当前File表示的文件在该位置创建出来

*/

file.createNewFile();//光标在这句代码中按alt+回车

System.out.println("文件已创建");

}

}

}

文件的删除:

package file;

import java.io.File;

import java.io.FileFilter;

/**

  • 获取./src/file目录中所有名字以"D"开始的文件

    */

    public class Test2 {

    public static void main(String[] args) {

    FileFilter filter = new FileFilter() {

    //只要file表示的文件的名字是以"D"开始的则接受

    public boolean accept(File file) {

    String name = file.getName();

    System.out.println("正在过滤:"+name);

    return name.startsWith("D");

    }

    };

    File dir = new File("./src/file");

    File[] subs = dir.listFiles(filter);

    for(int i=0;i<subs.length;i++){

    System.out.println(subs[i].getName());

    }

    }

    }

文件的访问:

package file;

import java.io.File;

/**

  • java.io.File

  • File可以表示硬盘上的一个文件或目录(本质保存的是一个抽象路径)

  • File可以:

  • 1:访问其表示的文件或目录的属性

  • 2:创建删除文件或空目录

  • 3:访问一个目录中的子项

  • File不可以:

  • 访问文件数据

    */

    public class FileDemo {

    public static void main(String[] args) {

    //绝对路径的优点是清晰明了,但是缺点是路径写死了,跨平台行不好。

    // File file = new File("c:/Users/X/IdeaProjects/JSD2206_SE/demo.txt");

    //相对路径的优点是有良好的跨平台性。

    //“./”表示当前目录,在IDEA中当前目录指的是当前程序所在的项目目录

    File file = new File("./demo.txt");

     //获取file表示的文件或目录的名字
    String name = file.getName();
    System.out.println(name); //获取当前file表示的文件的大小(单位是字节)
    long len = file.length();
    System.out.println("大小:"+len+"个字节"); /*
    can:能
    write:写
    read:读
    */
    boolean cw = file.canWrite();//是否可写
    boolean cr = file.canRead();//是否可读
    System.out.println("是否可写:"+cw);
    System.out.println("是否可读:"+cr);

    }

    }

读取文件中所有的子项:

package file;

import java.io.File;

/**

  • 获取一个目录中的所有子项

    /

    public class ListFilesDemo {

    public static void main(String[] args) {

    //获取当前目录下的所有子项

    File dir = new File(".");

    /


    boolean isFile()

    判断当前File对象表示的是否为一个文件

         boolean isDirectory()
    判断当前File对象表示的是否为一个目录
    */
    if(dir.isDirectory()){//判断当前dir表示的是否为一个目录
    /*
    File[] listFiles()
    将当前File对象表示的目录中所有子项返回
    */
    File[] subs = dir.listFiles();
    System.out.println("当前目录下共:"+subs.length+"个子项");
    for(int i=0;i<subs.length;i++){
    File sub = subs[i];
    System.out.println(sub.getName());
    }
    }

    }

    }

在文件中设置过滤器找出符合过滤器要求的子项:

package file;

import java.io.File;

import java.io.FileFilter;

/**

  • 重载的listFiles方法
  • File[] listFiles(FileFilter filter)
  • 该方法允许我们传入一个文件过滤器,然后将当前File对象表示的目录中所有满足此过滤器要求的
  • 子项返回。

    /

    public class ListFilesDemo2 {

    public static void main(String[] args) {

    /


    获取./src/file目录中所有名字中含有“t”的文件

    /

    File dir = new File("./src/file");

    if(dir.isDirectory()){

    //使用匿名内部类创建一个文件过滤器

    FileFilter filter = new FileFilter() {

    /


    重写accept方法(accept:接受)

    此方法的重写原则是定义过滤器过滤File的条件。当参数file符合此过滤器

    的过滤条件时,方法应当返回为true。表达过滤器接受该file。

    */

    public boolean accept(File file) {

    String name = file.getName();

    // return name.indexOf("t")>=0;

    return name.contains("t");//contains:包含

    }

    };

    File[] subs = dir.listFiles(filter);

    for(int i=0;i<subs.length;i++){

    System.out.println(subs[i].getName());

    }

    }

    }

    }

目录的创建:

package file;

import java.io.File;

/**

  • make:做

  • directory:目录(文件夹)

  • 创建一个目录

    */

    public class MkDirDemo {

    public static void main(String[] args) {

    //在当前目录下新建一个目录:demo

    // File dir = new File("./demo");

    // File dir = new File("demo");

     File dir = new File("./a/b/c/d/e/f");
    if(dir.exists()){
    System.out.println("该目录已存在!");
    }else{
    /*
    mkdir()创建当前File表示的目录,前提是该目录所在的目录必须存在。
    mkdirs()创建当前File表示的目录,并会将所有不存在父目录一同创建出来。
    实际开发中推荐使用mkdirs这个方法。
    */

// dir.mkdir();

dir.mkdirs();

System.out.println("该目录已创建!");

}

}

}

目录的删除:

package file;

import java.io.File;

/**

  • 删除一个目录

    /

    public class DeleteDirDemo {

    public static void main(String[] args) {

    //删除当前目录下的demo目录

    // File dir = new File("./demo");

    File dir = new File("./a");

    if(dir.exists()){

    /


    delete()方法在删除目录是要求该目录必须是一个空目录

    */

    dir.delete();

    System.out.println("该目录已删除!");

    }else {

    System.out.println("该目录不存在!");

    }

    }

    }

api进阶Day1文件的创建、删除、访问、设置过滤器并查询。目录的删除、创建。的更多相关文章

  1. 从0开始,手把手教你用Vue开发一个答题App01之项目创建及答题设置页面开发

    项目演示 项目演示 项目源码 项目源码 教程说明 本教程适合对Vue基础知识有一点了解,但不懂得综合运用,还未曾使用Vue从头开发过一个小型App的读者.本教程不对所有的Vue知识点进行讲解,而是手把 ...

  2. Eclipse创建一个mybatis工程实现连接数据库查询

    Eclipse上创建第一mybatis工程实现数据库查询 步骤: 1.创建一个java工程 2.创建lib文件夹,加入mybatis核心包.依赖包.数据驱动包.并为jar包添加路径 3.创建resou ...

  3. Java File文件操作 创建文件\目录,删除文件\目录

    Java手册 java.io 类 File java.lang.Object java.io.File 所有已实现的接口: Serializable, Comparable<File> p ...

  4. Expo大作战(三十八)--expo sdk api之 FileSystem(文件操作系统)

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  5. 【Android】13.0 第13章 创建和访问SQLite数据库—本章示例主界面

    分类:C#.Android.VS2015: 创建日期:2016-02-26 一.简介 Android 内置了三种数据存取方式:SQLite数据库.文件.SharedPreferences. 这一章我们 ...

  6. 详解:基于WEB API实现批量文件由一个服务器同步快速传输到其它多个服务器功能

    文件同步传输工具比较多,传输的方式也比较多,比如:FTP.共享.HTTP等,我这里要讲的就是基于HTTP协议的WEB API实现批量文件由一个服务器同步快速传输到其它多个服务器这样的一个工具(简称:一 ...

  7. 在 ASP.NET 中创建数据访问和业务逻辑层(转)

    .NET Framework 4 当在 ASP.NET 中处理数据时,可从使用通用软件模式中受益.其中一种模式是将数据访问代码与控制数据访问或提供其他业务规则的业务逻辑代码分开.在此模式中,这两个层均 ...

  8. linux专题一之文件管理(目录结构、创建、查看、删除、移动)

    在linux系统中一切都是文件./ 在linux中为根目录,是一切文件的根目录.本文将通过linux系统的目录结构和与linux文件操作有关的相关命令(touch.mkdir.cp.mv.mv.les ...

  9. Microsoft Office Excel 不能访问文件及COM无法访问

    Microsoft Office Excel 不能访问文件及COM无法访问 Microsoft Office Excel 不能访问文件“*.xls”. 可能的原因有: 1 文件名称或路径不存在. 2  ...

  10. 在Openstack上创建并访问Kubernetes集群

    第一部分:创建集群 在Openstack部署Kubernetes集群运行Nginx容器的步骤,其中包括: 利用Murano部署Kubernetes集群 配置Openstack的安全性使Kubernet ...

随机推荐

  1. fillder弱网测试

    打开Fiddler,Rules->Performance->勾选 Simulate Modem Speeds,勾选之后访问网站会发现网络慢了很多. 二.设置弱网参数:菜单Rules-> ...

  2. eNSP报错41解决方法

    1.点击右上角的菜单 2.工具>>注册设备,全部勾选,然后注册,就行了.

  3. 思科vlan简单配置

    实验拓扑 实验目标:2台交换机,4台pc,分别处于10,20vlan中可以跨交换机相互通信 tips:vlan是2层技术 可以配置在交换机上 实验ip PC2 10.1.1.2/24 PC1 10.1 ...

  4. Unity2018 用vs2017打开脚本时,不兼容不能加载工程

    修改    <TargetFrameworkVersion>v4.7.1</TargetFrameworkVersion> 为 <TargetFrameworkVersi ...

  5. 【Quartus系列】实验一: 3-8译码器(原理图输⼊设计)

    实验一: 3-8译码器(原理图输⼊设计) ⼀:实验⽬的 1. 了解3-8译码器的电路原理,掌握组合逻辑电路的设计⽅法 2. 掌握QuartusII软件原理图输⼊设计的流程 ⼆:实验内容 2.1设计输⼊ ...

  6. [CQOI2006]凸多边形 /【模板】半平面交

    洛谷 题意:逆时针给出\(n(n<=10)\)个凸多边形的顶点坐标,求它们交的面积. 学长博客,计算几何知识全面 半平面交问题详细讲解 其他模板题推荐 [ICPC2020 WF] Domes [ ...

  7. 瞬间并发测试-jmeter

    测试需求:秒杀场景,瞬间并发.通常来说,JMeter的线程数即为并发的压力数,实际上JMeter在运行时,每个线程是独立的,虽然有100个线程,但这些线程并不是同时向服务器发送请求,JMeter要模拟 ...

  8. 【vue】Vue-router

    Vue-router 安装 npm install vue-router --save-dev vue-cli中已经选择安装了vue-router,那这里不需要重复安装了 解读route 路径```s ...

  9. 93、springboot 和springcloud版本对比

    https://start.spring.io/actuator/info 建议转为json

  10. 大规模人脸分类—allgather操作(2)

    腾讯开源人脸识别训练代码TFace 中关于all_gather层的实现如下.接下来解释为什么backward要进行reduce相加操作. https://github.com/Tencent/TFac ...