Java——File类

一,File类的概述和构造方法

A:file类的概述

file类可以理解成一个路径

文件夹或者是文件夹路径

路径分为绝对路径和相对路径

绝对路径是一个固定的路径,从盘符开始这里的G:\TIM  就是一个绝对路径,是一个固定的路径

这里的G:\TIM 就是一个绝对路径,是一个固定的路径

相对路径是相对于某个位置而言的

在eclipse下是指当前项目这里的 xxx.txt就是一个相对路径
这里的 xxx.txt 就是一个相对路径

在DOS下指的是当前路径
这里的C:\Administrator 就是一个当前路径
这里的C:\Administrator 就是一个当前路径

B:file类的构造方法

file类可以理解成一个路径

  • File(String pathname):根据一个路径得到File对象
  • File(String parent,String chile):根据一个目录和一个子文件/目录得到File对象
  • File(File parent,String child):根据一个父类File对象和一个子文件/目录得到File对象

这里写图片描述
这里写图片描述

由图可得:
1,G:\TIM\思You.docx 是存在的
2,xxx.txt也是存在
3,yyy.txt是不存在的

代码实现:

package com.yy.file;import java.io.File;public class Demo1_File {public static void main(String[] args) {demo1();demo2();demo3();}private static void demo3() {/*File(File parent,String child):根据一个父类File对象和一个子文件/目录得到File对象*/File parent = new File("G:\\TIM");String child = "思You.docx";File file = new File(parent,child);System.out.println(file.exists());System.out.println(parent.exists());//(父级路径)是File对象,可以使用File里面的内容}private static void demo2() {/*File(String parent,String chile):根据一个目录和一个子文件/目录得到File对象*/String parent = "G:\\TIM";          //(父级路径)代表字符串,只能判断字符串中的内容,不能使用File里面的内容String child = "思You.docx";         //(子级路径)File file = new File(parent,child);System.out.println(file.exists()); //判断路径是否是否存在}private static void demo1() {/*File(String pathname):根据一个路径得到File对象*/File file = new File("G:\\TIM\\思You.docx");     //代表一个文件的路径 一个'/'表示转译,两个'//'表示该目录下System.out.println(file.exists());  //  绝对路径:(判断是否存在)存在,返回true  不存在,返回falseFile file2 = new File("xxx.txt");       //xxx.txt存在,返回trueSystem.out.println(file2.exists()); //  相对路径:(判断是否存在)存在,返回true  File file3 = new File("yyy.txt");       //yyy.txt不存在,返回falseSystem.out.println(file3.exists()); //  相对路径:(判断是否存在)不存在,返回false}}

二,File类的创建功能

创建功能

  • public boolean createNewFile():创建文件,如果存在这样的文件,就不创建了
  • public boolean mkdir():创建文件夹,如果存在这样的文件夹,就不创建了
  • public boolean mkdir():创建多级文件夹,如果父文件夹不存在,会帮你创建出来

代码实现:

package com.yy.file;import java.io.File;
import java.io.IOException;public class Demo2_FileMethod {public static void main(String[] args) throws IOException {demo1();demo2();demo3();}private static void demo3() {/*public boolean mkdir():创建多级文件夹,如果父文件夹不存在,会帮你创建出来*/File dir3 = new File("ccc\\ddd");System.out.println(dir3.mkdirs());//创建多级目录(创建多级文件夹)}private static void demo2() {/*public boolean mkdir():创建文件夹,如果存在这样的文件夹,就不创建了*/File dir1 = new File("aaa");//创建文件夹,如果父文件夹存在,不创建,并返回false;如果父文件夹不存在,创建,并返回trueSystem.out.println(dir1.mkdir());File dir2 = new File("bbb.txt");//这样写是可以的,创建的是文件夹,只是文件夹的名称为:bbb.txt而已,文件夹也是可以有后缀的System.out.println(dir2.mkdir());}private static void demo1() throws IOException {/*public boolean createNewFile():创建文件,如果存在这样的文件,就不创建了*/File file = new File("wsq.txt");System.out.println(file.createNewFile());   //如果没有就创建,返回trueFile file2 = new File("zzz");System.out.println(file2.createNewFile());  //如果有就不创建了,返回false}}

二,File类的重命名和删除功能

A:重命名和删除功能

  • public boolean renameTo(File dest):把文件重命名为指定的文件路径
  • public boolean delete():删除文件或文件夹

B:重命名注意事项

  • 如果路径名相同,就是改名
  • 如果路径名不同,就是改名并剪切

C:删除注意事项

  • Java中的删除不走回收站
  • 要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹

这里写图片描述

代码实现:

package com.yy.file;import java.io.File;public class Demo3_Method {public static void main(String[] args) {demo1();demo2();}private static void demo2() {File file1 = new File("yy.txt");System.out.println(file1.delete());//删除yy.txt文件(删除时,不走回收站的,也就是说 会永久彻底删除)File file2 = new File("E:\\wsq.txt");System.out.println(file2.delete());File file3 = new File("zzz");System.out.println(file3.delete());}private static void demo1() {File file1 = new File("yy.txt");File file2 = new File("E:\\wsq.txt");System.out.println(file1.renameTo(file2));//把文件yy.txt重命名为E盘下wsq.txt}}

程序运行之后:
这里写图片描述
会将yy.txt转化成G:\TIM下的wsq.txt
会将yy.txt转化成G:\TIM下的wsq.txt

三,File类的判断功能

判断功能

  • public boolean isDirectory():判断是否是目录,是 返回true 否 返回 false
  • public boolean isFile():判断是否是文件,是 返回true 否 返回 false
  • public boolean exists():判断是否存在,是 返回true 否 返回 false
  • public boolean canRead():判断是否可读,是 返回true 否 返回 false
  • public boolean isHidden():判断是否隐藏,是 返回true 否 返回 false

这里写图片描述
由图可知:
ccc是一个文件夹
zzz是一个文件
aaa.txt是一个文件

将aaa.txt设置为隐藏
将aaa.txt设置为隐藏

代码实现:

package com.yy.file;import java.io.File;public class Demo4_FileMethod {public static void main(String[] args) {demo1();demo2();}private static void demo2() {File file = new File("zzz");file.setReadable(false);System.out.println(file.canRead());         //Windows 系统认为所以的文件都是可读的file.setWritable(true);System.out.println(file.canWrite());        //Windows 系统可以设置为不可写File file2 = new File("aaa.txt");System.out.println(file2.isHidden());       //判断是否是隐藏文件System.out.println(file.isHidden());}private static void demo1() {File dir1 = new File("ccc");            //这里的ccc是一个文件夹System.out.println(dir1.isDirectory());//判断是否是文件夹      ccc  是一个文件夹,所以返回trueFile dir2 = new File("zzz");            //这里的zzz是一个文件System.out.println(dir2.isDirectory());//判断是否是文件夹      zzz  是一个文件,所以返回falseSystem.out.println(dir1.isFile());      //判断是否是文件      ccc  是一个文件夹,所以返回falseSystem.out.println(dir2.isFile());      //判断是否是文件      zzz  是一个文件,所以返回trueSystem.out.println(dir1.exists());      //判断是否存在,存在返回true,不存在返回falseSystem.out.println(dir2.exists());      //判断是否存在,存在返回true,不存在返回false}}

四,File类的获取功能

  • public String getAbsolutepath():’获取绝对路径
  • public String getPath():获取路径
  • public String getName():获取名称
  • public long length():获取长度、字节数
  • public long lastModified():获取最后一次的修改时间(毫秒值)
  • public String [] list():获取指定目录下的所有文件或者文件夹名称数组
  • public File [] listFiles():获取指定目录下的所有文件或者文件夹的File数组

这里写图片描述
这里写图片描述
这里写图片描述

代码实现:

package com.yy.file;import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;public class Demo5_FileMethod {
/*** public String getAbsolutepath():’获取绝对路径* public String getPath():获取路径* public String getName():获取名称* public long length():获取长度、字节数* public long lastModified():获取最后一次的修改时间(毫秒值)* public String [] list():获取指定目录下的所有文件或者文件夹名称数组* public File [] listFiles():获取指定目录下的所有文件或者文件夹的File数组* */public static void main(String[] args) {demo1();File dir = new File("G:/TIM");          //获取名称String [] arr = dir.list();                 for (String string : arr) {System.out.println(string);}System.out.println();File [] subFiles = dir.listFiles();     //获取全路径(每一个file对象)  for (File file : subFiles) {System.out.println(file);           //重写了Object类中的toString()方法}System.out.println();}private static void demo1() {File file1 = new File("ccc.txt");   //相对路径File file2 = new File("E:\\eclipse_win64\\新建文件夹\\day19\\ccc.txt");  //绝对路径System.out.println(file1.getAbsolutePath());            //获取绝对路径System.out.println(file2.getAbsolutePath());            //获取绝对路径System.out.println();System.out.println(file1.getPath());                    //获取构造方法里面的路径,传的是啥,返回啥System.out.println(file2.getPath());                    //获取构造方法里面的路径,传的是啥,返回啥System.out.println();System.out.println(file1.getName());                    //获取文件或者是文件夹的名称System.out.println(file2.getName());                    //获取文件或者是文件夹的名称System.out.println();System.out.println(file1.length());                     //获取文件或者是文件夹的长度、字节数System.out.println(file2.length());                     //获取文件或者是文件夹的长度、字节数System.out.println();System.out.println(file1.lastModified());               //获取文件最后一次的修改时间(毫秒值)System.out.println(file2.lastModified());               //获取文件最后一次的修改时间(毫秒值)System.out.println();Date wsq = new Date(file1.lastModified());              Date yy = new Date(file2.lastModified());System.out.println(wsq);                                //获取文件最后一次的修改时间(年月日英文形式)System.out.println(yy);                                 //获取文件最后一次的修改时间(年月日英文形式)System.out.println();SimpleDateFormat qq = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");System.out.println(qq.format(wsq));                     //获取文件最后一次的修改时间(年月日简易中文形式)System.out.println(qq.format(yy));                      //获取文件最后一次的修改时间(年月日简易中文形式)System.out.println();}}

运行结果如下:
这里写图片描述
这里写图片描述
这里写图片描述

五,File类(输出指定目录下指定后缀的文件名)

  • 问题:判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称

这里写图片描述

代码如下:

package com.yy.test;import java.io.File;
import java.io.FilenameFilter;public class Test3 {
/*** 判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称* */public static void main(String[] args) {File dir = new File("E:\\");/*String [] arr = dir.list();               //获取E盘下所有的文件或者文件夹for (String wsq : arr) {if(wsq.endsWith(".jpg"));System.out.println(wsq);}*/File [] subFiles = dir.listFiles();         //获取E盘下所有的文件或者文件夹对象for (File subFile : subFiles) {if(subFile.isFile() && subFile.getName().endsWith(".jpg")){System.out.println(subFile);}}
}

这里写图片描述

六,File类(文件名称过滤器)

代码如下:

package com.yy.test;import java.io.File;
import java.io.FilenameFilter;public class Test3 {public static void main(String[] args) {File dir = new File("E:\\");String [] arr = dir.list(new FilenameFilter() {@Overridepublic boolean accept(File dir, String name) {
//              System.out.println(dir);
//              System.out.println(name);File file = new File(dir, name);return file.isFile() && file.getName().endsWith(".jpg");}});for (String string : arr) {System.out.println(string);}   }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/380004.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3 配置 @符号

config,ts 配置 有 爆红 安装 npm install 一下 然后 配置 路径提示功能 tsconfig.json 配置 路径提示功能 一共这两个路径配置

mts模式_MTS的完整形式是什么?

mts模式MTS:Microsoft Transaction Server /移动电话服务/多通道电视声音 (MTS: Microsoft Transaction Server/ Mobile Telephone Service/ Multichannel Television Sound) 1)MTS:Microsoft Transaction Server (1) MTS: Microsoft Transaction Server…

Java——IO流

一,IO流常识 Ⅰ,IO流的概述 1,IO流用来处理设备之间的数据传输 2,Java对数据的操作都是通过流的方式 3,Java用于操作流的类都在IO包中 4,流 按流向分为: ①输入流 ②输出流 5&#xff0…

《软件》2011年第6期刊登出 《DB 查询分析器》中断SQL语句的执行

《软件》编辑部寄来了2011年第6期样刊,在2011年第6期,刊登出了本人的论文------“《DB 查询分析器》中断SQL语句的执行”。 论文刊登在第42页,排在第13篇,还比较靠前,呵呵。 在“万方数据”和“中国期刊全文数据库”中…

ret2libc过地址随机化

程序&#xff1a; #include<stdio.h> char buf2[10] "this is buf2"; void vul() {char buf1[10];gets(buf1); } void main() {write(1,"sinxx",5);vul(); }很明显&#xff0c;gets函数存在溢出 编译&#xff1a; gcc -no-pie -fno-stack-protect…

远控免杀专题(29)-C#加载shellcode免杀-5种方式(VT免杀率8-70)

0x00 免杀能力一览表 几点说明&#xff1a; 1、表中标识 √ 说明相应杀毒软件未检测出病毒&#xff0c;也就是代表了Bypass。 2、为了更好的对比效果&#xff0c;大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。 3、由于本机测试时只是安装了360全家…

WPF界面设计技巧(2)—自定义漂亮的按钮样式

上次做了个很酷的不规则窗体&#xff0c;这次我们来弄点好看的按钮出来&#xff0c;此次将采用纯代码来设计按钮样式&#xff0c;不需要 Microsoft Expression Design 辅助了。 首先打开 Microsoft Visual Studio 2008 &#xff0c;新建一个WPF项目&#xff0c;在上面随便放几个…

ropgadgets与ret2syscall技术原理

程序&#xff1a; #include <stdio.h> #include <string.h> #include <sys/types.h> #include <unistd.h> #include <sys/syscall.h> void exploit() { system("/bin/sh"); } void func() { char str[0x20]; read(0,str,0x50); } int…

PHP中单引号和双引号的区别

0x01 单引号 单引号里面的内容不会被解释&#xff0c;不管什么内容&#xff0c;都当做字符串处理 <?php$abc1234; $stradc$abc; echo $str;输出 0x02 双引号 双引号里面的内容会被解释&#xff0c;像一些换行&#xff08;\n)、数据元素等都会被解释 <?php$abc1234;…

关闭页面时执行“退出”的解决方案

在有些应用中我们需要实时的更新站点用户是否在线的状态。比如一些论坛里的在线成员实时显示&#xff0c;或基于网页的聊天、会议系统等。这种情况下&#xff0c;如果用户点击“退出”按钮或链接&#xff0c;我们将之行一系列后台操作&#xff0c;将该用户标识成off line状态&a…

python网络编程---TCP客户端

0x01 环境 python2、 pycharm 0x02 程序 # -*- coding:UTF-8 -*- import sockettarget_hostwww.baidu.com tarfet_port80target_hostlocalhost target_port3345 dataABCDEF# 创建一个socket对象 client socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 连接客户端 clien…

python网络编程---TCP服务器

0x01 环境 python2 pycharm 0x02 程序 客户端程序&#xff1a; # -*- coding:UTF-8 -*- import sockettarget_hostwww.baidu.com target_port80target_hostlocalhost target_port3345 dataABCDEF# 创建一个socket对象 client socket.socket(socket.AF_INET,socket.SOCK_STRE…

sys.argv和getopt

0x01 sys.argv sys.argv用来读取命令行参数&#xff0c;保存程序的文件名和命令参数&#xff0c;读入的参数以列表保存 import sysprint sys.argv print type(sys.argv)可以看到&#xff0c;sys.argv把空格当成分隔符&#xff0c;空格两边的值当做sys.argv的一个元素&#xf…

[导入]《大话设计模式》重印公告

摘要: 《大话设计模式》12月中旬上市&#xff0c;至2008年1月底仅仅一个多月&#xff0c;5000册即销售一空&#xff0c;清华大学出版社已经开始重印&#xff0c;也就是说很快可以在二月底或三月初看到新印刷修正过大部分错误的《大话设计模式》。 阅读全文[新闻]《人民日报市场…

hdu1053 Entropy hdu2527 Safe Or Unsafe

裸裸的哈弗曼编码&#xff0c;求出哈弗曼编码的路径长度&#xff0c;注意整个字符串为一种字符的情况 View Code #include<iostream>#include<queue>#include<algorithm>#include<vector>using namespace std;struct node{int u,w; node(int a0,in…

sys.stdin.read和raw_input函数

sys.stdin.read函数 例子&#xff1a; import sysreadsys.stdin.read() for i in range(len(read)):print i,read[i],-1运行&#xff0c;当执行到readsys.stdin.read()会阻塞&#xff0c;等待我们输入 我们输入&#xff1a; h e当输入&#xff0c;ctrlD结束输入&#xff0c…

利用带关联子查询Update语句更新数据

Update是T-sql中再简单不过的语句了&#xff0c;update table set columnexpression [where condition]&#xff0c;我们都会用到。但update的用法不仅于此&#xff0c;真正在开发的时候&#xff0c;灵活恰当地使用update可以达到事半功倍的效果。 假定有表Table1&#xff08;…

web安全----XSS漏洞之基本原理

0x01 概述 XSS为跨站脚本攻击&#xff0c;XSS攻击针对的是用户层面的攻击&#xff01;类型有反射型XSS、存储型XSS、DOM型XSS&#xff0c;这里的DOM可以理解为页面&#xff0c;或者是所有的标签、内容之和 0x02 反射型XSS 反射型XSS攻击流程为&#xff1a; 即&#xff1a; …

web安全----xss工具使用3

XSSer 0x01 安装 环境&#xff1a;kali、python3&#xff08;必须是python3&#xff0c;kali默认为python2&#xff09; 安装步骤&#xff1a; git clone https://github.com/epsylon/xsser.git cd xsser sudo python3 setup.py install 使用命令&#xff1a; xsser -h查看…

web安全---XSS利用平台BLUE-LOTUS安装与使用

0x01 安装 环境&#xff1a;windows、phpstudy 下载地址&#xff1a;https://gitee.com/gid1314/BlueLotus_XSSReceiver-master 下载后将文件解压&#xff0c;重命名为blue&#xff0c;放在www目录下 访问&#xff1a;http://IP/blue 点击安装 这里只需要修改后台登陆密码和…