File
来源:互联网 发布:龙门镖局知乎 编辑:程序博客网 时间:2024/06/11 16:37
File
要学习IO流,就必须掌握硬盘上的路径的表形式,Java就提供了一个File类:文件件和目录路径名的抽象表示形式
构造方法:
public File(String pathname):将该路径名称封装成了一个File实例
例: File f = new File(“e:\demo\a.txt”);
File(String parent, String child):将父文件夹或者目录里面的child文件封装成一个File实例
例: File f = new File(“e:\demo\”,”a.txt”);
File(File parent, String child:参数一:表示封装了File对象,该文件夹下的文件
例: File f1 = new File(“e:\demo”);
File f2 = new File(f1,”a.txt”);
File类中常用的成员方法:
public boolean createNewFile():表示创建文件,如果存在该文件,就不需要创建,会抛出异常!IOException
public boolean mkdir():创建文件夹/目录,如果存在该文件夹,就不需要创建
public boolean mkdirs():创建文件夹/目录,如果不存在该目录,就创建!
public boolean delete()删除此抽象路径名表示的文件或目录
注意:1)如果我们在写路径的时候,没有带盘符,那么默认是在你当前项目路径下! 2)java中的删除不走回收站 3)delete不能删除该文件夹下有文件或者是文件夹的,删除空文件夹 public boolean renameTo(File dest):重命名 注意: 两个文件的路径一致的情况下:只是改名字 两个文件的路径不一致的情况下:不但改名,并且剪切(当前的盘符路径下)
File类中提供了一些判断功能:
public boolean isAbsolute():判断该路径是否是绝对路径
public boolean isFile()判断此文件是否为一个标准文件
public boolean isHidden():判断此抽象路径表示的文件是否是一个隐藏文件
public boolean canRead():可读
public boolean canWrite():可写
File类的获取功能:(基本获取功能)
public String getAbsolutePath():获取绝对路径
public STring getPath():获取相对路径
public String getName():获取文件或者目录的名称
public long length():获取文件的长度
public long lastModified():返回次抽象路径文件最后一次被修改的时间,返回的修改时间的一个毫秒值
代码:
public static void main(String[] args) throws IOException { //public File(String pathname):将该路径名称封装成了一个File实例 File f1 = new File("e:\\aaa\\bbb\\ccc"); //public boolean mkdirs():创建文件夹/目录,如果不存在该目录,就创建! System.out.println(f1.mkdirs()); //public boolean createNewFile():表示创建文件,如果存在该文件,就不需要创建,会抛出异常!IOException File f2 = new File("e:\\b.txt"); System.out.println(f2.createNewFile()); //public boolean delete()删除此抽象路径名表示的文件或目录 File f3 = new File("e:\\aaa\\bbb\\ccc"); System.out.println(f3.delete()); //public boolean renameTo(File dest):重命名 File file = new File("e:\\b.txt"); File newFile = new File("e:\\c.txt"); System.out.println(file.renameTo(newFile)); // public String getAbsolutePath():获取绝对路径 File f4 = new File("e:\\b.txt"); System.out.println(f4.getAbsolutePath()); //public STring getPath():获取相对路径 System.out.println(f4.getPath()); //public String getName():获取文件或者目录的名称 System.out.println(f4.getName()); //public long length():获取文件的长度 System.out.println(f4.length()); //public long lastModified():返回次抽象路径文件最后一次被修改的时间,返回的修改时间的一个毫秒值 System.out.println(f4.lastModified());}
结果:
true
true
true
true
e:\b.txt
e:\b.txt
b.txt
0
0
File类的高级获取功能:
public String[] list():该方法是获取指定盘符下的所有的文件以及文件夹的名称数组
public File[] listFiles():获取指定盘符下的所有文件以及文件夹的File对象数组(常用)
需求:
将c盘中所有的文件以及文件夹的名称获取
代码:
public static void main(String[] args) { File f = new File("c:\\"); String[] s = f.list(); for(String ss : s){ System.out.println(ss); } System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); File[] ff = f.listFiles(); if(ff != null){ for(File fff : ff){ String name = fff.getName(); System.out.println(name); } }}
结果:
$Recycle.Bin
Boot
bootmgr
BOOTSECT.BAK
Documents and Settings
Drivers
Intel
OEMSF
PerfLogs
Program Files
Program Files (x86)
ProgramData
Recovery
System Volume Information
Users
Windows ~~~~~~~~~~~~~~~~~~~~~~~~~~
$Recycle.Bin
Boot
bootmgr
BOOTSECT.BAK
Documents and Settings
Drivers
Intel
OEMSF
PerfLogs
Program Files
Program Files (x86)
ProgramData
Recovery
System Volume Information
Users
Windows
文件名称过滤器
实现FilenameFilter接口(使用匿名内部类的方式,并且重写accept()方法:测定指定文件是否包含在某一文件中) public File[] listFiles(FileFilter filter) public String[] list(FilenameFilter filter)(这个文件名称过滤器中常用)
需求:
判断E盘目录下是否有后缀名为.txt的文件,如果有,就输出此文件名称
代码:
public static void main(String[] args) { File f = new File("e:\\"); String[] list = f.list(new FilenameFilter(){ @Override public boolean accept(File dir, String name) { File f = new File(dir,name); boolean b1 = f.isFile(); boolean b2 = name.endsWith(".txt"); return b1 && b2; //匿名对象的方法
// return new File(dir,name).isFile() && name.endsWith(“.txt”);
}
}); for(String s :list){ System.out.println(s); }}
结果:
a.txt
c.txt
- File
- file
- File
- file
- File
- File
- file
- file
- file
- File
- File
- file
- file
- File
- FILE
- file
- file
- file
- L2-020. 功夫传人
- Chrome最新版(53-55)再次爆出BUG!
- 自定义HorizontalScrollView视图实现仿ViewPager效果
- Vue学习笔记
- 异常(抛出异常:throws)
- File
- HDU
- Redis配置文件之redis.windows.conf
- Android Studio为Class跟Activity等添加注解
- IO流(字节输出流)
- 【深入理解Java虚拟机读书笔记】垃圾收集器与内存分配策略
- IO流(字节输入流)
- 数据库-基础数据库的操作
- Python3之super关键字