外文翻译—Java(译文+英文).doc
上传人:天马****23 上传时间:2024-09-12 格式:DOC 页数:19 大小:130KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

外文翻译—Java(译文+英文).doc

外文翻译—Java(译文+英文).doc

预览

免费试读已结束,剩余 9 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

JavaJavaI/O系统对编程语言的设计者来说,创建一套好的输入输出(I/O)系统,是一项难度极高的任务。这一点可以从解决方案的数量之多上看出端倪。这个问题难就难在它要面对的可能性太多了。不仅是因为有那么多I/O的源和目地(文件,控制台,网络连接等等),而且还有很多方法(顺序的『sequential』,随机的『random-access』,缓存的『buffered』,二进制的『binary』,字符方式的『character』,行的『bylines』,字的『bywords』,等等)。Java类库的设计者们用"创建很多类"的办法来解决这个问题。坦率地说JavaI/O系统的类实在是太多了,以至于初看起来会把人吓着(但是,具有讽刺意味的是,这种设计实际上是限制了类的爆炸性增长)。此外,Java在1.0版之后又对其I/O类库作了重大的修改,原先是面向byte的,现在又补充了面向Unicode字符的类库。为了提高性能,完善功能,JDK1.4又加了一个nio(意思是"newI/O"。这个名字会用上很多年)。这么以来,如果你想对Java的I/O类库有个全面了解,并且做到运用自如,你就得先学习大量的类。此外,了解I/O类库的演化的历史也是相当重要的。可能你的第一反应是"别拿什么历史来烦我了,告诉我怎么用就可以了!"但问题是,如果你对这段历史一无所知,很快就会被一些有用或是没用的类给搞糊涂了。本章会介绍Java标准类库中的各种I/O类,及其使用方法。File类在介绍直接从流里读写数据的类之前,我们先介绍一下处理文件和目录的类。File类有一个极具欺骗性的名字;或许你会认为这是一个关于文件的类,但它不是。你可以用它来表示某个文件的名字,也可以用它来表示目录里一组文件的名字。如果它表示的是一组文件,那么你还可以用list()方法来进行查询,让它会返回String数组。由于元素数量是固定的,因此数组会比容器更好一些。如果你想要获取另一个目录的清单,再建一个File对象就是了。实际上,叫它"FilePath"可能会更好一些。下面我们举例说明怎样使用这个类及其相关的FilenameFilter接口。目录列表器假设你想看看这个目录。有两个办法。一是不带参数调用list()。它返回的是File对象所含内容的完整清单。但是,如果你要的是一个"限制性列表(restrictedlist)"的话——比方说,你想看看所有扩展名为.java的文件——那么你就得使用"目录过滤器"了。这是一个专门负责挑选显示File对象的内容的类。下面就是源代码。看看,用了java.utils.Arrays.sort()和11章的AlphabeticComparator之后,我们没费吹灰之力就对结果作了排序(按字母顺序)://:c12:DirList.java//Displaysdirectorylistingusingregularexpressions.//{Args:"D.*\.java"}importjava.io.*;importjava.util.*;importjava.util.regex.*;importcom.bruceeckel.util.*;publicclassDirList{publicstaticvoidmain(String[]args){Filepath=newFile(".");String[]list;if(args.length==0)list=path.list();elselist=path.list(newDirFilter(args[0]));Arrays.sort(list,newAlphabeticComparator());for(inti=0;i<list.length;i++)System.out.println(list[i]);}}classDirFilterimplementsFilenameFilter{privatePatternpattern;publicDirFilter(Stringregex){pattern=Pattern.compile(regex);}publicbooleanaccept(Filedir,Stringname){//Strippathinformation,searchforregex:returnpattern.matcher(newFile(name).getName()).matches();}}///:~DirFilter实现了FilenameFilter接口。我们来看看FilenameFilter究竟有多简单:publicinterfaceFilenameFilter{booleanaccep