【IT168 技术文档】当你安装了jdk,在jdk的类库里,有一个标准的File类,通过该类,可以很方便的实现浏览各种文件系统的功能。
File类:
java.lang.Object
|
+--java.io.File
File类扩展了Object对象,实现了Serializable, Comparable定义的接口,可以通过File的一个实例对jvm上的文件系统进行各种操作,下面我编写了一个FileViewer类,该类通过Iterator类将一个文件列表实现对列表的迭代操作
FileViewer.java import java.io.File; import java.util.Date; import java.util.Iterator; import java.util.Vector; public class FileViewer{ File myDir; File[] contents; Vector vectorList; Iterator currentFileView; File currentFile; String path; public FileViewer(){ path=new String(""); vectorList=new Vector(); } public FileViewer(String path){ this.path=path; vectorList=new Vector(); } /** * 设置浏览的路径 */ public void setPath(String path){ this.path=path; } /*** * 返回当前目录路径 */ public String getDirectory(){ return myDir.getPath(); } /** * 刷新列表 */ public void refreshList(){ if(this.path.equals("")) path="c:\\"; myDir=new File(path); vectorList.clear(); contents =myDir.listFiles(); //重新装入路径下文件 for(int i=0;i vectorList.add(contents[i]); } currentFileView=vectorList.iterator(); } /** * 移动当前文件集合的指针指到下一个条目 * @return 成功返回true,否则false */ public boolean nextFile(){ while(currentFileView.hasNext()){ currentFile=(File)currentFileView.next(); return true; } return false; } /** * 返回当前指向的文件对象的文件名称 */ public String getFileName(){ return currentFile.getName(); } /** * 返回当前指向的文件对象的文件尺寸 */ public String getFileSize(){ return new Long(currentFile.length()).toString(); } /** * 返回当前指向的文件对象的最后修改日期 */ public String getFileTimeStamp(){ return new Date(currentFile.lastModified()).toString(); } /** * 返回当前指向的文件对象是否是一个文件目录 */ public boolean getFileType(){ return currentFile.isDirectory(); } }
通过setPath()方法设定要浏览的目录(注意如果操作系统为微软操作系统,每个路径分隔符应写成两个斜杠\\),nextFile()方法用来移动列表记录,可以通过getFileName()得到文件或文件夹名称,通过getFileSize()得到文件尺寸,通过getFileTimeStamp()得到文件的最后修改时间,通过getFileType()判断是否是一个文件目录。
编写一个test例子测试这个FileViewer类
test.java import java.io.*; public class test{ public static void main(String[] args){ System.out.println("File List"); FileViewer f=new FileViewer(); f.setPath("d:\\"); f.refreshList(); while(f.nextFile()){ System.out.print(f.getFileName()); if(!f.getFileType()) System.out.print(" "+f.getFileSize()); else System.out.print(" "); System.out.print(f.getFileTimeStamp()+"\n"); } } }
首先编译FileViewer.java文件,生成FileViewer.class类;再编译test.java运行后,可以显示当前目录下的所有文档.唯一不足就是:不能对当前路径下的文件夹的内容进行显示.