Java中IO部分(二)

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);}
			}
		
		}

注:这个方法会导致主线程堵塞状态出现,为了保证正常运行,通常情况下是建立另外一个线程来实现查询的功能,以保证主线程不会出现堵塞状态。

猜你喜欢

转载自blog.csdn.net/weixin_38626208/article/details/83188945