一、简述
在整个io包中,唯一表示与文件本身有关的类就是File类。使用File类可以进行创建或删除文件等常用操作。要想使用File类,则首先要观察File类的构造方法,此类的常用构造方法如下所示:
public File(String pathname) ->实例化File类的时候,必须设置好路径。
二、File类中的主要方法和常量
No. |
方法或常量 |
类型 |
描述 |
1 |
public static final String pathSeparator |
常量 |
表示路径的分隔符(windows是:“;”) |
2 |
public static final String separator |
常量 |
表示路径的分隔符(windows是:“\”) |
3 |
public File(String pathname) |
构造 |
创建File类对象,传入完整路径 |
4 |
public boolean createNewFile() throws IOException |
普通 |
创建新文件 |
5 |
public boolean delete() |
普通 |
删除文件 |
6 |
public boolean exists() |
普通 |
判断文件是否存在 |
7 |
public boolean isDirectory() |
普通 |
判断给定的路径是否是一个目录 |
8 |
public long length() |
普通 |
返回文件的大小 |
9 |
public String[] list() |
普通 |
列出指定目录的全部内容,只是列出了名称 |
10 |
public File[] listFiles() |
普通 |
列出指定目录的全部内容,会列出路径 |
11 |
public boolean mkdir() |
普通 |
创建一个目录 |
12 |
public boolean renameTo(File dest) |
普通 |
为已有的文件重新命名 |
三、创建一个新文件
3.1、直接创建文件:
package com.pb.file.demo1; import java.io.File; import java.io.IOException; public class FileDemo1 { public static void main(String[] args) { File file=new File("d:/test.txt"); //声明一个文件对象 try { boolean flag=file.createNewFile(); //根据路径创建文件返回类型为Boolean类型 if(flag){ System.out.println("文件创建成功"); }else{ System.out.println("文件创建失败"); } } catch (IOException e) { e.printStackTrace(); } } }
3.2 在不同的操作系统中,路径的分隔符表示是不一样的
windows中使用反斜杆表示目录的分隔符:“\” ;
linux中使用正斜杆表示目录的分隔符:“/”。
package com.pb.file.demo1; import java.io.File; public class FileDemo2 { public static void main(String[] args) { System.out.println(File.pathSeparator); // 调用静态常量 System.out.println(File.separator); // 调用静态常量 } }
结果:
; \
3.3、修改创建文件的代码
使用静态常量连接
package com.pb.file.demo1; import java.io.File; import java.io.IOException; public class FileDemo1 { public static void main(String[] args) { String path="d:"+File.separator+"test1.txt"; File file=new File(path); //声明一个文件对象 try { boolean flag=file.createNewFile(); //根据路径创建文件返回类型为Boolean类型 if(flag){ System.out.println("文件创建成功"); }else{ System.out.println("文件创建失败"); } } catch (IOException e) { e.printStackTrace(); } } }
四、删除文件
4.1、不判断文件是否存在直接删除
package com.pb.file.demo1; import java.io.File; import java.io.IOException; public class FileDemo3 { public static void main(String[] args) { String path="d:"+File.separator+"test.txt"; File file=new File(path); //声明一个文件对象 boolean flag=file.delete(); //根据路径删除文件返回类型为Boolean类型 if(flag){ System.out.println("文件删除成功"); }else{ System.out.println("文件删除失败"); } } }
4.2、判断文件是否存在再执行删除
package com.pb.file.demo1; import java.io.File; import java.io.IOException; public class FileDemo3 { public static void main(String[] args) { String path = "d:" + File.separator + "test.txt"; File file = new File(path); // 声明一个文件对象 if (file.exists()) { boolean flag = file.delete(); // 根据路径删除文件返回类型为Boolean类型 if (flag) { System.out.println("文件删除成功"); } else { System.out.println("文件删除失败"); } } else { System.out.println("文件不存在!"); } } }
4.3、结合上面2个例子实现创建与删除
package com.pb.file.demo1; import java.io.File; import java.io.IOException; public class FileDemo4 { public static void main(String[] args) { String path = "d:" + File.separator + "test.txt"; File file = new File(path); // 声明一个文件对象 if(file.exists()){ //判断文件是否存在如果存在就删除 file.delete(); System.out.println("文件存在,删除成功!"); }else{//判断文件是否存在如果不存在就创建 try { file.createNewFile(); System.out.println("文件不存在,创建成功!"); } catch (IOException e) { e.printStackTrace(); } } } }
五、创建文件夹
5.1、创建一个文件夹mkdir
package com.pb.file.demo1; import java.io.File; import java.io.IOException; public class FileDemo5 { public static void main(String[] args) { String path = "d:" + File.separator + "test"; File file = new File(path); // 声明一个文件对象 if(!file.exists()){ boolean flag=file.mkdir(); //创建文件夹 if(flag){ System.out.println("文件夹创建成功"); } }else{ System.out.println("已经存在这个名称的文件夹!"); } } }
5.2、创建一个多层文件夹mkdirs
package com.pb.file.demo1; import java.io.File; import java.io.IOException; public class FileDemo5 { public static void main(String[] args) { String path = "d:" + File.separator + "test"+ File.separator + "test1"+ File.separator + "test2"; File file = new File(path); // 声明一个文件对象 if(!file.exists()){ boolean flag=file.mkdirs(); //创建文件夹 if(flag){ System.out.println("文件夹创建成功"); } }else{ System.out.println("已经存在这个名称的文件夹!"); } } }
5.3、列出目录下的全部内容
package com.pb.file.demo1; import java.io.File; import java.io.IOException; public class FileDemo6 { public static void main(String[] args) { String path = "f:" + File.separator ; File file = new File(path); // 声明一个文件对象 System.out.println("============只列出文件夹和文件的名称==============="); String [] str=file.list();//列出目录中的全部内容文件夹和文件 //此方法只列出文件夹和文件的名称 for (int i = 0; i < str.length; i++) { System.out.println(str[i].toString()); } System.out.println("==============列出路径、文件夹和文件的名称================="); File[] file1=file.listFiles(); //列出目录中的全部内容文件夹和文件 //此方法会列出路径、文件夹和文件的名称 for (int i = 0; i < file1.length; i++) { System.out.println(file1[i].toString()); } } }
结果:
============只列出文件夹和文件的名称=============== $RECYCLE.BIN download eclipse-kepler html java java web javascript javastudy jquery js jsp jsptest linux ORACLE oracle学习笔记 shop System Volume Information t tools vm 软件 ==============列出路径、文件夹和文件的名称================= f:\$RECYCLE.BIN f:\download f:\eclipse-kepler f:\html f:\java f:\java web f:\javascript f:\javastudy f:\jquery f:\js f:\jsp f:\jsptest f:\linux f:\ORACLE f:\oracle学习笔记 f:\shop f:\System Volume Information f:\t f:\tools f:\vm f:\软件
5.3、增加判断是文件还是目录
先判断给出一是不是目录
package com.pb.file.demo1; import java.io.File; import java.io.IOException; public class FileDemo7 { public static void main(String[] args) { String path = "g:" + File.separator ; File file = new File(path); // 声明一个文件对象 if(file.isDirectory()){ System.out.println(file.getPath()+"是目录!"); } if(file.isFile()){ System.out.println(file.getPath()+"是文件!"); } } }
package com.pb.file.demo1; import java.io.File; import java.io.IOException; public class FileDemo7 { public void print(File file){ if(file.exists()){ //判断给定的目录或者文件是否存在 System.out.println("=============路径存在========="); if(file.isDirectory()){ System.out.println(file.getPath()+"是目录! 将会列出目录下的所有文件!=============="); File [] f=file.listFiles(); //是目录就列出目录下的所有内容 for (int i = 0; i < f.length; i++) { if(f[i].isDirectory()){ System.out.println(f[i]+"\t是目录!"); }else{ System.out.println(f[i]+"\t是文件!"); } } }else{ //不是目录就打印路径信息 System.out.println(file+"\t是文件!"); } }else{ System.out.println(file+"=============路径不存在!============="); } } public static void main(String[] args) { String path = "g:" + File.separator ; File file = new File(path); // 声明一个文件对象 FileDemo7 fd=new FileDemo7(); fd.print(file); } }
结果:
=============路径存在========= g:\是目录! 将会列出目录下的所有文件!============== g:\$RECYCLE.BIN 是目录! g:\Adobe Dreamweaver CS5 是目录! g:\Adobe Dreamweaver CS5.rar 是文件! g:\atm 是目录! g:\atm.rar 是文件! g:\eclipse 是目录! g:\eclipse-kepler 是目录! g:\html 是目录! g:\java 是目录! g:\jsp 是目录! g:\orcale 是目录! g:\SqlHistory.xml 是文件! g:\System Volume Information 是目录! g:\~1 是目录! g:\书 是目录! g:\停止..bat 是文件! g:\启动.bat 是文件! g:\源 是目录! g:\第三方控件 是目录!
六、其它的一些方法
package com.pb.file.demo1; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; /* * 文件操作的一些方法 */ public class FileMethods { public static void main(String[] args) throws IOException { //实例化File类对象 File f=new File("d:"+File.separator+"test"+File.separator+"hello.txt"); //文件文件属性 System.out.println("文件名:"+f.getName()); //相对路径 System.out.println("相对路径:"+f.getParent()); //绝对路径 System.out.println("绝对路径:"+f.getAbsolutePath()); //获取文件的父级目录,上一级目录 System.out.println("上一级目录"+f.getParent()); //当前文件是否存在 System.out.println(f.exists()?"文件存在":"文件不存在"); //是不是个文件 System.out.println(f.isFile()?"是文件":"不是文件"); //文件长度 System.out.println("文件长度:"+f.length()); //是不是个文件 System.out.println(f.isDirectory()?"是文件夹":"不是文件夹"); //是否可以 读 System.out.println(f.canRead()?"文件可读":"文件不可读"); //是否可以写 System.out.println(f.canRead()?"文件可写":"文件不可写"); //最后一次修改的时间 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date=new Date(f.lastModified()); System.out.println("最后修改的时间:"+sdf.format(date)); //新建 if(!f.exists()){ //如果文件不存在就创建 f.createNewFile(); System.out.println("创建文件"); }else{ //如果存在就删除 f.delete(); System.out.println("删除文件"); } } }
时间: 2024-09-30 04:45:54