【Java】File类
【Java】File类
一、概述
* File更应该叫做一个路径, 文件路径或者文件夹路径
* 路径分为绝对路径和相对路径
* 绝对路径是一个固定的路径,从盘符开始
* 相对路径相对于某个位置,在eclipse下是指当前项目下,在dos下
* 查看API指的是当前路径
* 文件和目录路径名的抽象表示形式
* 字符串中的需要//来表示分隔符,因为一个/为转义符
二、构造方法
1、File(Stringpathname):根据一个路径创建得到File对象,绝对/相对路径
2、File(Stringparent, String child):根据一个目录(文件夹)和一个子文件/目录得到File对象,父级路径+子级路径
3、File(Fileparent, String child):根据一个父File对象和一个子文件/目录得到File对象,将父级路径封装成一个File对象
三、File类的创建功能
* public boolean createNewFile():文件如果不存在,则创建并返回true,如果存在这样的文件,就不创建了返回 false
* public boolean mkdir():创建单个文件夹返回true,如果存在这样的文件夹,就不创建了返回false
* public boolean mkdirs():创建多级文件夹,如果父文件夹不存在,会帮你创建出来
* 注意事项:
如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。
四、File类的重命名和删除功能
1、public boolean renameTo(File dest):把文件重命名为指定的文件路径,
File dest为目标文件路径(名字)
* 如果路径名相同,就是改名。
* 如果路径名不同,就是改名并剪切。
2、public boolean delete():删除文件或者文件夹
* Java中的删除不走回收站。不可撤回。要小心。
* 要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹,必须是空的
五、File类的判断功能
* public boolean isDirectory():判断是否是目录(文件夹)
* public boolean isFile():判断是否是文件
* public boolean exists():判断是否存在
* public booleancanRead():判断是否可读
设置是否可读:setReadable(boolean);
注意:windows系统认为所有的文件都是可读的,设置不起作用。在LINUX下,如果设为不可读则为不可读
* public boolean canWrite():判断是否可写
设置是都可写:setWriteable(boolean);
注意:windows系统可以设置为不可写
* publicboolean isHidden():判断是否隐藏
六、File类的获取功能
* public String getAbsolutePath():获取绝对路径
* public String getPath():获取路径,获取构造方法里的路径,跟创建时传入的路径有关
* public String getName():获取文件或者文件夹的名称
* public long length():获取文件的长度。字节数
* public long lastModified():获取最后一次的修改时间,毫秒值。
注意:可以使用毫秒值创建Date对象,使用SimpleDateFormat日期进行格式化。
- Date d = new Date(file1.lastModified()); //文件的最后修改时间
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
- System.out.println(sdf.format(d));
* public String[] list():获取指定目录下的所有文件或者文件夹的名称数组,仅为了获取文件名
* public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组,获取文件对象,File类重写了toString()方法。
七、练习
判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称
- import java.io.FilenameFilter;
- public class Test3 {
- /**
- * @param args
- * * A:案例演示
- * 需求:判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称
- */
- public static void main(String[] args) {
- File dir = new File("E:\\");
- // String[] arr = dir.list(); //获取e盘下所有的文件或文件夹
- // for (String string : arr) {
- // if(string.endsWith(".jpg")) {
- // System.out.println(string);
- // }
- // }
- /*File[] subFiles = dir.listFiles(); //获取e盘下所有的文件或文件夹对象
- for (File subFile : subFiles) {
- if(subFile.isFile() && subFile.getName().endsWith(".jpg")) {
- System.out.println(subFile);
- }
- }*/
- }
- }
注意:如果想判断E盘下文件夹中jpg文件,需要用到递归思想 ,后期学习。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Java和C++的区别
Java和C++的区别 Java和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想。那两者到底有什么区别呢?下面我们来分析一下吧! 由于c++为了照顾大量的C语言使用者, 而兼容了C,使得自身仅仅成为了带类的C语言,多多少少影响了其面向对象的彻底性!JAVA则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,据弃了其他语言的不足之处,从根本上解决了c++的固有缺陷。 区别: 1.多重继承 c++支持多重继承,这是c++的一个特征,它允许多父类派生一个类。尽管多重继承功能很强,但使用复杂,而且会引起许多麻烦,编译程序实现它也很不容易。Java不支持多重继承,但允许一个类继承多个接口,从而实现了c++多重继承的功能,又避免了c++中的多重继承实现方式带来的诸多不便。 2.数据类型及类 Java是完全面向对象的语言,所有函数和变量部必须是类的一部分。除了基本数据类型之外,其余的都作为类对象,包括数组。对象将数据和方法结合起来,把它们封装在类中,这样每个对象都可实现自己的特点和行为。而c++允许将函数和变量定义为全局的。此外,...
- 下一篇
【vuejs深入一】深入学习vue指令,自定义指令解决开发痛点
写在前面 一个好的架构需要经过血与火的历练,一个好的工程师需要经过无数项目的摧残。 最近博主我沉淀了几个月,或者说懒了几个月。然而大佬的指点总是一针见血,能够让人看到方向。所以我现在有觉得,一个好的学习环境指的一定是有个能指点你的大佬。大佬水平的高低决定了今后技术的学习难易。 v-model指令 vue.js的定义是一个mvvm框架,将它发挥到极致能够极大的提升工作效率。在vuejs中,指令(directive)无疑是最关键,最重要的一环之一,官方api自带的指令提供了非常方便的方式,将常见的编码场景进行提炼,使用这些指令能令人感到愉悦。 v-model 数据绑定指令,它最常见的用法是可以将指定的data对象中的属性绑定到一个form元素中,例如: <div id="app"> <div class="directives"> <input type="text" v-model="text" name="" value=""> {{text}} </div> </div> <script src="https:/...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Hadoop3单机部署,实现最简伪集群
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库