JAVA菜鸟入门篇 - File类实例学习 (30)

来源:互联网 发布:骷髅面具淘宝 编辑:程序博客网 时间:2024/05/29 03:01

今天我们学习一下java中的File类

相应的API文档:File类

以下是本人做的一些整理:

下面的构造函数可以用来生成File 对象:
         
File(File parent, String child) 
          根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
File(String pathname) 
          通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
File(String parent, String child) 
          根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
File(URI uri) 
          通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例。

一:File类的方法详解

   File file1 = new File ("C://temp//myNote.txt"); // in Windows  这是windows文件系统下的方法
   File file2 = new File ("/tmp/myNote.txt"); // in Linux/Unix        unix文件系统的方法
   在不同的操作系统中,文件之间的分隔符表示方式不一样的,为了安全起见,我们可以使用File.separator来表示分隔符
最安全的建立文件的方法:

    File myFile = new File("C:" + File.separator + "jdk1.5.0" + File.separator, "File.java");

    提醒:File.separator 表示的是文件路径符号。

常用方法介绍:
    System.out.println(myFile.getName());//取得文件名称的方法
    System.out.println(myFile.getPath());//取得文件路径的方法
    System.out.println(myFile.isAbsolute());//判断文件是否完整
    System.out.println(myFile.getParent());//取得文件的根目录
    System.out.println(myFile.exists());//判断文件是否存在
    System.out.println(myFile.isDirectory());//判断是否是目录
    System.out.println(myFile.isFile());//判断是否是文件
    System.out.println(myFile.isHidden());//判断是否是隐藏文件
    System.out.println(myFile.canRead());//判断是否可读
    System.out.println(myFile.canWrite());//判断是否可写
    File myFile_C=new File("d:/test.txt");
    System.out.println(new Date(myFile_C.lastModified()));//最后一次编辑时间
    myFile_C.renameTo(new File("c:/text.txt.bak"));//重新命名此抽象路径名表示的文件。
    myFile_C.setReadOnly();//设置为只读


二:File类的实例应用


1. 创建文件和目录

编写代码创建一个目录E:\test,下面含有两个文件1.txt,2.txt 和一个目录dir,dir目录下有两个文件3.txt和4.txt 

<span style="font-family:SimSun;font-size:18px;"> public static  void createDirectory(){    System.out.println("**********************");    File f=new File("E:"+File.separator+"test");   //File.separator为文件分隔符,在windows下为\    System.out.println("create directory...");    f.mkdir();     //创建目录    File file1=new File(f,"1.txt");    //在目录test下创建两个文件    File file2=new File(f,"2.txt");    try {file1.createNewFile();file2.createNewFile();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}   //创建文件         File f2=new File(f,"dir");    //在目录test下创建目录dir    f2.mkdir();      File file3=new File(f2,"3.txt");   //创建文件    File file4=new  File(f2,"4.txt");    try {file3.createNewFile();file4.createNewFile();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}    //测试创建的File对象:是文件还是文件夹    System.out.println("f is file? " +f.isFile());    //false    System.out.println("f is directory? "+ f.isDirectory());    //true    System.out.println("file1 is file? " +file1.isFile());   //true    System.out.println("file2 is file? " +file1.isFile());   //true    System.out.println("f2 is file? " +f.isFile());    //false    System.out.println("f2 is directory? "+ f.isDirectory());    //true    System.out.println("file3 is file? " +file1.isFile());   //true    System.out.println("file3 is file? " +file1.isFile());   //true     }</span>


2. 列出目录下所有的文件名

    编写一个程序,在命令行中以树状结构展示特定的文件夹及其子文件(夹)。(使用递归来实现)

public class FileTree {public static void main(String[] args) {//找一个自己硬盘上有用的文件夹File f = new File("e:/test");printFile(f, 0);}//树状结构打印static void printFile(File file,int level){for (int i = 0; i < level; i++) {System.out.print("-");}System.out.println(file.getName()); if(file.isDirectory()){File[]  files = file.listFiles();for (File temp : files) {printFile(temp, level+1);}}}}
显示结果:

test
-1.txt
-2.txt
-dir
--3.txt
--4.txt


3. 列出目录下所有的文件路径

   编写一个程序,在命令行中以树状结构展示特定的文件夹及其子文件(夹)的路径。(使用递归来实现)

public class FileTree {public static void main(String[] args) {//找一个自己硬盘上有用的文件夹File f = new File("e:/test");printFilePath(f, 0);}static void printFilePath(File file,int level){for (int i = 0; i < level; i++) {System.out.print("-");}System.out.println(file.getPath()); if(file.isDirectory()){File[]  files = file.listFiles();for (File temp : files) {printFilePath(temp, level+1);}}}}

显示结果:

e:\test
-e:\test\1.txt
-e:\test\2.txt
-e:\test\dir
--e:\test\dir\3.txt
--e:\test\dir\4.txt


4. 删除一个文件(包含文件里的目录)

<span style="font-family:SimSun;font-size:18px;">public class FileDeleteAllFile {public static void main(String[] args) {//找一个自己硬盘上有用的文件夹File f = new File("e:/test");deleteAll(f);}public static void deleteAll(File file){if(!file.exists()) return ;//为文件或者目录为空if(file.isFile()||file.list().length==0){file.delete();return;}else{File[] files=file.listFiles();for(File f:files){deleteAll(f);}file.delete();}}}</span>

本文参考:

http://blog.csdn.net/sunxiaosunxiao/article/details/6621003

http://blog.csdn.net/Steve_wang_victor/article/details/5853387

http://blog.csdn.net/kiss_the_sun/article/details/7921050


0 0
原创粉丝点击