
案例三:目录列表的显示 所属章节:输入输出系统Java Applet 教学目的: 拿罪a对于文件(包括顺序读取文件和随机读取文件)的操作方法: 授计要果: 读取各种计算机文作系统的文件列表。 案例酬析 File类扩展了0 bject对象,实现了Serializable,Comparable定义的接口,可以通 过F11e的一个实例附jv■上的文件系统进行各种操作, I,设定要浏克的目录:调用setPath0方法,要注意操作系统为微软操作系统,每个 路径分隔符应写成再个料杠从): 2移动列表记录:使用extFi1e0方法用米, 3.可以通过getFi】eNane (得到文件减文件夹名称, 4获取文件尺寸:使用etFile5ize0, 5获取文件的最后修改时间:使用getFi1 eTineStarp0 6判断是否是一个文件目录:使用getFi1eTpe0. 该类通过Iterator类将一个文件列表实现对列表的选代操作: 参考代码 I,文件列表功能实现:F11eV1eer,ava import java.io.File: import Java.util.Date: inport java.util.Iterator: inport java.util.Vector: public class FileViever( File mDir: File[]contents; Yector vectorList日 Iterator curremtFileView: File currentFile;
案例三:目录列表的显示 所属章节:输入输出系统 Java Applet 教学目的: 掌握 java 对于文件(包括顺序读取文件和随机读取文件)的操作方法; 设计要求: 读取各种计算机文件系统的文件列表。 案例剖析 File 类扩展了 Object 对象,实现了 Serializable, Comparable 定义的接口,可以通 过 File 的一个实例对 jvm 上的文件系统进行各种操作, 1. 设定要浏览的目录:调用 setPath()方法,要注意操作系统为微软操作系统,每个 路径分隔符应写成两个斜杠\\); 2. 移动列表记录:使用 nextFile()方法用来, 3. 可以通过 getFileName()得到文件或文件夹名称, 4. 获取文件尺寸:使用 getFileSize(), 5. 获取文件的最后修改时间:使用 getFileTimeStamp() 6. 判断是否是一个文件目录:使用 getFileType()。 该类通过 Iterator 类将一个文件列表实现对列表的迭代操作; 参考代码 1. 文件列表功能实现: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 FileViever({ path=new String("): vectorList=nev Vector(): public FileViever(String path) this.path"path: vectorListmnew Vector(): /∥设置测览的路径 public roid setPath(String path) this.path=path: 1 ∥运国当前目录路径 publie String getDireetoryO[ return myDir.getPathO: / ∥刷新列表 publie void refreshList () if(this.path.equals("))path-'c:\"; myDir=nev File(path): vectorList.clear(); contents =myDir.listFiles(: /重新装入路径下文件 for (int i-0:i OONTENTS.LENGTH:I++)[ vectorList.add(contents[]): currentFileViev"vectorList.iterator () 林
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<CONTENTS.LENGTH;I++){ vectorList.add(contents[i]); } currentFileView=vectorList.iterator(); } /**

多移动当前文件集合的指针指到下一个条目 幸retm成功赵回true,香期false 制 public boolean nextFile() while(currentFileView.hasNext()){ currentFile=(File)currentFileView.next O: return true: return false: 1 种 零起回当前指向的文件对象的文件名称 制 public String getFileNare({ return currentFile.get Nane0: 1 /神 多返回当前指向的文件对象的文件尺寸 public String cetFileSize([ return mew Long(curremtFile.length ())toString(): 1 /特 。返回当前指向的文件对象的最后修政日期 / public String getFileTineStamp() return mew Date(curremtFile.lastModified().toStringO: 1 /钟 常无回当前指向的文件对象是否是一个文件目承
* 移动当前文件集合的指针指到下一个条目 * @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(): 1 L.测试类test.jaa import java.1o*: public class test public static void min(String]args) System out.println("File List") FileViever f-new FileYiewer(): f.setPath("d:\\") f.refreshlist O: while(f.nextFile()){ Systen out.print (f.getFileName()): if(!f.getFileType()) Syster里ogt.print(“+f.getFi1 eSize0): else Systen.o陶t,rlmt( 7: Syster里o陶t,rint(t.etFileTimeStar0+"m):
*/ public boolean getFileType(){ return currentFile.isDirectory(); } } 1. 测试类 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"); } } }