Java中IO部分(二)
一、File类中读取文件信息
File类中的读取文件新的方法
判断路径是否是文件的方法:public boolean isFile();方法
判断路径是否是目录:public boolean isDirectory();
取得文件大小(字节):public long length();描述时间的是毫秒
取得最后的修改日期:public long LastModified();
package com.se.core;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestDemo {
public static void main(String[] args) throws Exception {
File file=new File("d:"+File.separator+"abc"+File.separator+"bcd"+File.separator+"hello.txt");
if(file.exists())
{
System.out.println (new SimpleDateFormat("yyy-mm-dd hh:mm:ss").format(file.lastModified()) );
System.out.println(file.length());
}
}
注:其中的获取文件的长度和文件最后的修改时间都是long类型,需要类型转换。
二、File类中获取目录信息
File类中获取目录信息方法
public File[] listFiles();列出目录中的内容
package com.se.core;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestDemo {
public static void main(String[] args) throws Exception {
File file=new File("d:"+File.separator);
if(file.exists()&&file.isDirectory())
{ File files [] = file.listFiles();
for(int i=0;i<files.length;i++)
{ System.out.println(files[i]);
}
}
}
}
注:只是列出所有根目录的所有文件,而子目录的文件不可列出
要实现子目录下的文件也列出来,采取递归方法,代码如下:
package com.se.core;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestDemo {
public static void main(String[] args) throws Exception {
File file=new File("d:"+File.separator);
listFileS( file);
}
public static void listFileS(File file1){
if(file1.exists()&&file1.isDirectory()){
File result[]=file1.listFiles();
if(result!=null){
for(int i=0;i<result.length;i++){
listFileS(result[i]);
}
}
System.out.println(file1);}
}
}
注:这个方法会导致主线程堵塞状态出现,为了保证正常运行,通常情况下是建立另外一个线程来实现查询的功能,以保证主线程不会出现堵塞状态。