java - file文件操作

2023-10-26

目录:

1.文件属性查询操作

2.创建.txt文件

3.删除.txt文件

4.创建文件夹

5.删除文件夹

6.获取当前目录下所有文件夹的名称

7.文件过滤

1.文件属性查询操作

package file;

import java.io.File;

/**
 * io包:io是两个单词,分别是input和output,即:输入与输出
 * java.io.File
 * File类的每一个实例可以表示硬盘(文件系统)中的一个文件或目录(实际上表示的是一个抽象路径)
 * 使用File可以做到:
 * 1:访问其表示的文件或目录的属性信息,例如:名字,大小,修改时间等等
 * 2:创建和删除文件或目录
 * 3:访问一个目录中的子项
 * 但是File不能访问文件数据.
 */
public class FileDemo {
    public static void main(String[] args) {
        File file = new File("./demo.txt");
        //获取名字
        String name = file.getName();
        System.out.println(name);
        //获取文件长度,单位是字节
        long len = file.length();
        System.out.println(len+"字符");
        //是否是隐藏的
        boolean isHidden = file.isHidden();
        System.out.println("是否隐藏:"+isHidden);
        //是否可读
        boolean cr = file.canRead();
        //是否可写
        boolean cw = file.canWrite();
        System.out.println("是否可读:"+cr);
        System.out.println("是否可写:"+cw);
    }
}

2.创建.txt文件

package file;

import java.io.File;
import java.io.IOException;

/**
 * 使用File创建一个新文件
 */
public class CreateNewFileDemo {
    public static void main(String[] args) throws IOException {
        //在当前目录下新建一个文件:test.txt
        File file = new File("./test.txt");
        //boolean exists()判断当前File表示的位置是否已经实际存在该文件或目录
        if(file.exists()){
            System.out.println("该文件已存在!");
        }else{
            file.createNewFile();//将File表示的文件创建出来
            System.out.println("文件已创建!");
        }

    }
}


3.删除.txt文件

package file;

import java.io.File;

/**
 * 使用File删除一个文件
 */
public class DeleteFileDemo {
    public static void main(String[] args) {
        //将当前目录下的test.txt文件删除
        /*
            相对路径中"./"可以忽略不写,默认就是从当前目录开始的。
         */
        File file = new File("test.txt");
        if(file.exists()){
            file.delete();
            System.out.println("文件已删除!");
        }else{
            System.out.println("文件不存在!");
        }
    }
}

4.创建文件夹

package file;

import java.io.File;

/**
 * 使用File创建目录
 */
public class MkDirDemo {
    public static void main(String[] args) {
        //在当前目录下新建一个目录:demo
        File dir = new File("demo");
        if(dir.exists()){
            System.out.println("该目录已存在!");
        }else{
//            dir.mkdir();//如果所在的父目录不存在则创建失败!
            dir.mkdirs();//会将所有不存在的父目录一同创建出来
            System.out.println("该目录已创建!");
        }
    }
}

5.删除文件夹

package file;

import java.io.File;

/**
 * 删除一个目录
 */
public class DeleteDirDemo {
    public static void main(String[] args) {
        //将当前目录下的demo目录删除
        File dir = new File("./demo");
        if(dir.exists()){
            dir.delete();//删除目录时只能删除空目录!
            System.out.println("目录已删除!");
        }else{
            System.out.println("目录不存在!");
        }
    }
}





6.获取当前目录下所有文件夹的名称

package file;

import java.io.File;

/**
 * 访问一个目录中的所有子项
 */
public class ListFilesDemo1 {
    public static void main(String[] args) {
        //获取当前目录中的所有子项
        File dir = new File(".");
        /*
            boolean isFile()
            判断当前File表示的是否为一个文件
            boolean isDirectory()
            判断当前File表示的是否为一个目录
         */
        if(dir.isDirectory()){
            /*
                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());
            }
        }


    }
}




7.文件过滤

package file;

import java.io.File;
import java.io.FileFilter;

/**
 * 重载的listFiles方法可以传入一个文件过滤器,然后只将该目录中符合过滤器要求的子项返回。
 */
public class ListFilesDemo2 {
    public static void main(String[] args) {
        //获取当前目录中所有名字以"."开始的子项
        File dir = new File(".");
        if(dir.isDirectory()){
            FileFilter filter = new FileFilter() {
                /*
                    实现文件过滤器接口时,必须重写方法accept。这个方法就是过滤方法
                    将参数file看作是要过滤的子项,当该子项符合过滤要求需要保留时则
                    accept方法应当返回true,否则返回false
                 */
                public boolean accept(File file) {
                    String name = file.getName();//获取要过滤的该项内容的名字
                    System.out.println("正在过滤子项:"+name);
                    return name.startsWith(".");//名字是否是以"."开始的
                }
            };
            File[] subs = dir.listFiles(filter);
            System.out.println("当前目录中满足条件的子项有:"+subs.length+"个");
            for(int i=0;i<subs.length;i++){
                File sub = subs[i];
                System.out.println(sub.getName());
            }
        }
    }
}

8.

9.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java - file文件操作 的相关文章

  • Java中字符串中特殊字符的替换

    Java中如何替换字符串 E g String a adf sdf 如何替换和避免特殊字符 您可以删除除此之外的所有字符可打印的 ASCII 范围 http en wikipedia org wiki ASCII ASCII printab
  • Eclipse 在源代码管理中保存操作

    我们希望找到一种在签入之前执行代码标准的 轻量级 方法 我们真的很喜欢使用 Eclipse 内置的想法保存操作 go to Preferences gt gt Java gt gt Editor gt gt Save Actions 其中有
  • 这个函数(for循环)空间复杂度是O(1)还是O(n)?

    public void check 10 for string i list Integer a hashtable get i if a gt 10 hashtable remove i 这是 O 1 还是 O n 我猜测 O n 但不是
  • SAML 服务提供商 Spring Security

    当使用预先配置的服务提供者元数据时 在 Spring Security 中 是否应该有 2 个用于扩展元数据委托的 bean 定义 一份用于 IDP 元数据 一份用于 SP 元数据
  • OpenCV 中的 Gabor 内核参数

    我必须在我的应用程序中使用 Gabor 过滤器 但我不知道这个 OpenCV 方法参数值 我想对虹膜进行编码 启动 Gabor 过滤器并获取特征 我想对 12 组 Gabor 参数值执行此操作 然后我想计算 Hamming Dystans
  • wait() 在游戏中如何工作?

    在 playframework 的文档中here http www playframework org documentation 1 2 1 asynchronous已写 public static void loopWithoutBlo
  • 如何在不超过最大值的情况下增加变量?

    我正在为学校开发一个简单的视频游戏程序 我创建了一个方法 如果调用该方法 玩家将获得 15 点生命值 我必须将生命值保持在最大值 100 并且由于我目前的编程能力有限 我正在做这样的事情 public void getHealed if h
  • 使用 AES SecretKey 的 Java KeyStore setEntry()

    我目前正在 Java 中开发一个密钥处理类 特别是使用 KeyStore 我正在尝试使用 AES 实例生成 SecretKey 然后使用 setEntry 方法将其放入 KeyStore 中 我已经包含了代码的相关部分 The KS Obj
  • 如何模拟从抽象类继承的受保护子类方法?

    如何使用 Mockito 或 PowerMock 模拟由子类实现但从抽象超类继承的受保护方法 换句话说 我想在模拟 doSomethingElse 的同时测试 doSomething 方法 抽象超类 public abstract clas
  • Hazelcast 分布式锁与 iMap

    我们目前使用 Hazelcast 3 1 5 我有一个简单的分布式锁定机制 应该可以跨多个 JVM 节点提供线程安全性 代码非常简单 private static HazelcastInstance hInst getHazelcastIn
  • Java 8 流 - 合并共享相同 ID 的对象集合

    我有一系列发票 class Invoice int month BigDecimal amount 我想合并这些发票 这样我每个月都会收到一张发票 金额是本月发票金额的总和 例如 invoice 1 month 1 amount 1000
  • 具有 java XSLT 扩展的数组

    我正在尝试使用 java 在 XSLT 扩展中使用数组 我收到以下错误 Caused by java lang ClassCastException org apache xpath objects XObject cannot be ca
  • 将 SignedHash 插入 PDF 中以进行外部签名过程 -workingSample

    遵循电子书第 4 3 3 节 PDF 文档的数字签名 https jira nuxeo com secure attachment 49931 digitalsignatures20130304 pdf 我正在尝试创建一个工作示例 其中 客
  • 使用 SQLITE 按最近的纬度和经度坐标排序

    我必须获得一个 SQLite SQL 语句 以便在给定初始位置的情况下按最近的纬度和经度坐标进行排序 这是我在 sqlite 数据库中的表的例句 SELECT id name lat lng FROM items EXAMPLE RESUL
  • 如何在 Java 中测试一个类是否正确实现了 Serialized(不仅仅是 Serialized 的实例)

    我正在实现一个可序列化的类 因此它是一个与 RMI 一起使用的值对象 但我需要测试一下 有没有办法轻松做到这一点 澄清 我正在实现该类 因此在类定义中添加 Serialized 很简单 我需要手动序列化 反序列化它以查看它是否有效 我找到了
  • 如何在selenium服务器上提供自定义功能?

    我知道可以通过某种方法获得一些硒功能 其中之一如下 driver getCapabilities getBrowserName 它返回浏览器名称的值 但如果它指的是一个可用的方法 如果我没有误解的话 这似乎与自定义功能有关 就像我的意思是
  • 有没有一种快速方法可以从 Jar/war 中删除文件,而无需提取 jar 并重新创建它?

    所以我需要从 jar war 文件中删除一个文件 我希望有类似 jar d myjar jar file I donot need txt 的内容 但现在我能看到从 Linux 命令行执行此操作的唯一方法 不使用 WinRAR Winzip
  • 如何在JSTL中调​​用java方法? [复制]

    这个问题在这里已经有答案了 这可能是重复的问题 我只想调用不是 getter 或 setter 方法的方法例如 xyz 类的 makeCall someObj stringvalue Java类 Class XYZ public Strin
  • 游戏内的java.awt.Robot?

    我正在尝试使用下面的代码来模拟击键 当我打开记事本时 它工作正常 但当我打开我想使用它的游戏时 它没有执行任何操作 所以按键似乎不起作用 我尝试模拟鼠标移动和点击 这些动作确实有效 有谁知道如何解决这个问题 我发现这个问题 如何在游戏中使用
  • HQL Hibernate 内连接

    我怎样才能在 Hibernate 中编写这个 SQL 查询 我想使用 Hibernate 来创建查询 而不是创建数据库 SELECT FROM Employee e INNER JOIN Team t ON e Id team t Id t

随机推荐

  • mac电脑m1搭建java开发环境参考手册

    1 背景介绍 开发人员经常会换电脑 或者换新电脑 意味着重新搭建开发环境 很麻烦 但新电脑到手里面了 不换又不好 此篇专门用来记录mac电脑m1搭建java开发环境的步骤 希望对读者有所帮助 一条龙服务 后期有时间 会出关于win10环境的
  • Java关键字,字面量,变量

    date created 2022 07 27 17 28 关键字 什么是关键字 被Java赋予了 特定涵义的英文单词 关键字特点 关键字的字母 全部小写 在常用的代码编辑器中 对关键字有特殊颜色标记 class 关键字表示什么意思呢 cl
  • 如何快速解决 Maven 依赖冲突(MavenHelper)

    一 使用 IDEA 打开项目 二 打开设置安装插件 MavenHelper 三 安装完后点开 pom 文件 发现左下角有新的按钮 四 点击按钮 UI 弹出页面 可以清晰的看见maven 的依赖和冲突 也可以看到依赖树
  • windows10下安装docker报错:error during connect

    报错 docker 桌面版报错error during connect This error may indicate that the docker daemon is not running 解决方案 1 在CMD中执行如下两个命令 切
  • 10年软件测试工程师,只剩下这点感悟了(初级测试工程师必看)

    这两天和朋友谈到软件测试的发展 其实软件测试已经在不知不觉中发生了非常大的改变 前几年的软件测试行业还是一个风口 随着不断地转行人员以及毕业的大学生疯狂地涌入软件测试行业 目前软件测试行业 缺口 已经基本饱和 当然 我说的是最基础的功能测试
  • git把分支变成master

    以下操作在确定不再使用master代码才进行 或者备份一份原master 假设需要变成主分支的分支名称为 branch1 1 到git的setting页面 把默认分支暂时替换为其他分支 如 branch1 一般在仓库管理中的分支管理里可以设
  • js实现数组去重的方式(7种)

    目录 JS数组去重的方式 1 利用Set Array from 2 利用两层循环 数组的splice方法 3 利用数组的indexOf方法 4 利用数组的includes方法 5 利用数组的filter indexOf 6 利用Map 7
  • Java中的异常处理

    文章目录 Error 错误 Exception 常见的Exception 异常的处理 try catch finally throws和throw final finally finalize 的区别 在Java当中 所有的异常都有一个共同
  • Mac安装Jupyter(即IPython-notebook)的搭建及使用

    python是一个交互式的shell 除了代码补全 代码高亮外 还有很多magic命令 但是 最近在学习scipy时 发现很多学习文档使用的都是ipython notebook 它除了拥有ipython的特点外 还支持多行输入统一运行 区别
  • Flex 布局教程:实例篇

    原文点击打开链接 你会看到 不管是什么布局 Flex往往都可以几行命令搞定 我只列出代码 详细的语法解释请查阅 Flex布局教程 语法篇 我的主要参考资料是Landon Schropp的文章和Solved by Flexbox 一 骰子的布
  • [管理与领导-84]:IT基层管理者 - 核心技能 - 高效执行力 - 9 - 工作中处处是客户,高效执行力的方向:客户 服务 部门 上司 上下游终端 流程 输入 输出

    目录 前言 一 高效执行的努力方向 二 干系人 客户 上下游 部门 服务 干系人 广义的客户 企业内部客户 上下游 三 输入 需求 目标 评判标准 系统的输入 需求 需求规范 目标 评判标准 四 数据处理 研发过程 执行过程 数据处理 过程
  • redis详解(四)—— 高可用分布式集群

    一 高可用 高可用 High Availability 是当一台服务器停止服务后 对于业务及用户毫无影响 停止服务的原因可能由于网卡 路由器 机房 CPU负载过高 内存溢出 自然灾害等不可预期的原因导致 在很多时候也称单点问题 1 解决单点
  • 吐血分享!这几个在线网站超劲爆,福利满满

    现在网上资源丰富 有许多干货都是我们不知道的 小编今天和你们分享一些好的在线资源 今天就免费分享给大家 一 全集网 全集网主要是可以进行全网搜索下载电影或者电视剧的一个在线网站 并且更新的也很快哦 里面有好多好看的电影 喜欢看电视的小伙伴们
  • WPF VirtualizationMode属性Recycling和Standard的区别

    默认情况下 VirtualizingStackPanel 创建每个可见项的项容器以及丢弃 当不再需要时 例如 当项滚动到视图之外时 当 ItemsControl 包含许多项目时 会创建并放弃项容器处理会对性能产生负面影响 当 Virtual
  • Hadoop集群部署

    目录 1 部署规划 2 准备三台虚拟机 1 创建三个文件夹 然后把之前创建的虚拟机里面的文件分别复制到这三个文件夹中 编辑 2 用vmware分别打开这三个文件夹下的虚拟机 并分别重命名 3 修改这三台虚拟机的IP 1 运行master 然
  • Cocos2d 本地数据保存接口封装

    设置key value进行保存 setLocalStorageString function key value key LS key if typeof this key undefined undefined this key sys
  • 设计模式之装饰器模式

    装饰器模式 动态的将责任附加到对象上 若要扩展功能 装饰器提供了比继承更有弹性的替代方案 装饰器中有两个比较重要的角色 装饰者和被装饰者 被装饰者实现我们的核心逻辑 装饰者只是对这些逻辑进行增强 比如点一杯饮料 冰 加豆浆等都是装饰者 是对
  • 自旋锁与互斥锁的对比、手工实现自旋锁

    本文地址 LYanger的博客 http blog csdn net freeelinux article details 53695111 本文之前 我只是对自旋锁有所了解 知道它是做什么的 但是没有去测试实现过 甚至以为自旋锁只有ker
  • 顺序表的插入

    前面讲了关于顺序表的查找 这篇文章将讨论顺序表的插入与删除 首先来看看插入操作 在第i个位置插入一个新元素 使长度为n的线性表变为长度为n 1的线性表 我们在前一篇文章结尾谈到插入与删除需要移动大量的元素 其实就是移动原表的一些位置的结点
  • java - file文件操作

    目录 1 文件属性查询操作 2 创建 txt文件 3 删除 txt文件 4 创建文件夹 5 删除文件夹 6 获取当前目录下所有文件夹的名称 7 文件过滤 1 文件属性查询操作 package file import java io File