File类

来源:互联网 发布:高圆圆闺蜜zoe的淘宝店 编辑:程序博客网 时间:2024/06/06 09:37

1.   File类的概述

文件和路径名的抽象表现形式

2.   构造方法

public File(String pathname):给定一个文件的抽象路径表现形式,开发中常用

public File(String parent,Stringchild):参数一:指定当前文件夹的名称,参数二:该文件夹下的文件

public File(File parent,String child):参数一:file对象,参数二:表示具体文件

3. File类里面常用的一些方法

public booleancreateNewFile():创建文件,如果该文件存在了,就不用创建了,执行该方法会抛出一个异常IOException

publicboolean mkdir():创建文件夹

publicboolean mkdir():创建多个文件夹

publicBoolean delete():删除此抽象路径名表示的文件或目录

delete方法只能删除空目录,如果该目录有内容(文件或文件夹,那么只能先删除内容再删除最外层)

如果在写文件或文件夹的时候没有写盘符,那么默认在当前项目下创建

publicboolean renameTo(File dest):重命名

     注意:如果两个文件的抽象路径名称一致,只是改名

如果两个文件的抽象路径名称不一致,不仅改名,还要剪切

import java.io.File;

 

public class FileDemo2 {

publicstatic void main(String[] args) {

      Filefile=new File("高圆圆.jpg");

      Filefile2=new File("e:\\夏红.jpg");

      System.out.println(file.renameTo(file2));

}

}

代码:public class FileDemo {public static void main(String[] args) throws IOException {//创建File对象File file=new File("e:\\demo");System.out.println("mkdir:"+file.mkdir());File file2=new File(file,"java.txt");System.out.println("creatNewFile:"+file2.createNewFile());File file3=new File("e:\\aaa\\bbb\\ccc");System.out.println("mkdirs:"+file3.mkdirs());//File file4=new File("e:\\dd\\c.txt");//System.out.println(file4.createNewFile());//java.io.IOException: 系统找不到指定的路径。File file5=new File("d.txt");System.out.println("creatNewFile:"+file5.createNewFile());//System.out.println("delete:"+file5.delete());File file6=new File("aaa\\bbb\\ccc");System.out.println("mkdirs:"+file6.mkdirs());System.out.println("delete:"+file6.delete());}}

4  File类中的判断类

publicboolean isDirector():判断该文件是否是一个文件夹:重点

publicboolean isFile():判断文件是否是一个标准文件

publicboolean isHidden():判断文件是否是一个隐藏文件

publicboolean canRead():判断文件是可读

publicboolean canWrite():判断文件是否可写

代码:

public class FileDemo3 {public static void main(String[] args) {File file=new File("d.txt");System.out.println("isDetactor:"+file.isDirectory());System.out.println("isFile:"+file.isFile());System.out.println("isHidden:"+file.isHidden());System.out.println("canRead:"+file.canRead());System.out.println("canWrite:"+file.canRead());}}


5.  File类中的高级功能

publicString[] list():获取当前盘符下所有文件或文件夹的字符串名称数组

pubic  File [] listFiles():获取当前盘符下所有文件或文件夹的File名称数组,常用、

代码:

public class FileDemo {public static void main(String[] args) {//获取e盘下根目录的所有的文件以及文件夹的名称//将e盘根目录封装成一个File对象File file = new File("e:\\");//public String[] list():获取当前盘符下的所有的文件以及文件夹的字符串数组String[] strArray = file.list();//增强for遍历for(String s : strArray){System.out.println(s);}System.out.println("----------------------");File[] fileArray = file.listFiles() ;for(File f : fileArray){System.out.println(f.getName());}}}

6. File类中的获取功能:基本获取功能

     publicString getAbsolutePath():获取当前文件的绝对路径

     publicString getPath():相对路径

     publicString getName():获取文件或者目录的名称

     publiclong length():获取文件内容的长度

     publiclong lastModified():最后一次修改这个文件的时间(时间毫秒值)

代码:

public class FileDemo {public static void main(String[] args) {//将a.txt文件封装成一个file对象File file = new File("a.txt") ;//public String getAbsolutePath():D:\Java\JavaEE\code\day16\a.txtSystem.out.println("getAbsolutePath:"+file.getAbsolutePath());//public String getPath()System.out.println("getPath:"+file.getPath());//a.txt//public String getName():获取文件或者目录的名称System.out.println("getName:"+file.getName());//public long length():获取文件内容的长度System.out.println("length:"+file.length());//public long lastModified()System.out.println("lastModified:"+file.lastModified());//1502948146592 时间毫秒值//Date日期对象 ---String :日期的文本表现形式//创建日期对象Date d = new Date(1502948146592L) ;//创建SimpleDateFormat对象SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") ;//格式化String s = sdf.format(d) ;System.out.println(s);//2017-08-17 13:35:46}}


7.练习

判断d盘目录下是否有”.bin”文件,有就输出

方法一代码:/* * 要求:判断e盘目录下是否有".day"文件夹,有就输出 * 分析: * 1)将d盘封装成一个file对象 * 2)获取当前盘符下的文件或文件夹的File数组名称 * 3)遍历数组,获取到每一个文件或文件夹 * 4)判断是否是文件夹 * 5)如果是文件夹,判断文件夹是否以".bin"为后缀名 */public class FileTest {public static void main(String[] args) {//创建File对象File file=new File("e:\\");File[] array=file.listFiles();for(File f:array){if(f.isDirectory()){if(f.getName().endsWith(".day")){System.out.println(f.getName());}}}}}方法二代码:获取的时候就已经满足条件了,简单,方便代码:文件名称过滤器:public String[]list(Filenamefilter filter):返回一个字符串数组public File[] listFiles(Filefilter filter):返回抽象路径名称数组import java.io.File;import java.io.FilenameFilter;public class FileTest2 {public static void main(String[] args) {//将d盘中的文件和文件夹封装到File对象中File file=new File("e:\\");//返回一个字符串数组名称,然后匿名内部类String[] array=file.list(new FilenameFilter(){@Overridepublic boolean accept(File dir, String name) {// TODO Auto-generated method stubreturn new File(dir,name).isDirectory()&&name.endsWith(".day");}});for(String s:array){System.out.println(s);}}}