- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
外文资料译文及原文
院(系):计算机学院
专 业:计算机科学与技术
班 级:2401109
学 号:20023011349
姓 名:王震宇
指导教师:刘香琴 2006年7月 Java
Java I/O 系统
对编程语言的设计者来说,创建一套好的输入输出I/O系统,是一项难度极高的任务。
这一点可以从解决方案的数量之多上看出端倪。这个问题难就难在它要面对的可能性太多了。不仅是因为有那么多I/O的源和目地文件,控制台,网络连接等等,而且还有很多方法顺序的『sequential』,随机的『random-access』,缓存的『buffered』,二进制的『binary』,字符方式的『character』,行的『by lines』,字的『by words』,等等。
Java类库的设计者们用创建很多类的办法来解决这个问题。坦率地说Java I/O系统的类实在是太多了,以至于初看起来会把人吓着(但是,具有讽刺意味的是,这种设计实际上是限制了类的爆炸性增长)。此外,Java在1.0版之后又对其I/O类库作了重大的修改,原先是面向byte的,现在又补充了面向Unicode字符的类库。为了提高性能,完善功能,JDK 1.4又加了一个nio意思是new I/O。这个名字会用上很多年。这么以来,如果你想对Java的I/O类库有个全面了解,并且做到运用自如,你就得先学习大量的类。此外,了解I/O类库的演化的历史也是相当重要的。可能你的第一反应是别拿什么历史来烦我了,告诉我怎么用就可以了!但问题是,如果你对这段历史一无所知,很快就会被一些有用或是没用的类给搞糊涂了。
本章会介绍Java标准类库中的各种I/O类,及其使用方法。
File 类
在介绍直接从流里读写数据的类之前,我们先介绍一下处理文件和目录的类。
File类有一个极具欺骗性的名字;或许你会认为这是一个关于文件的类,但它不是。你可以用它来表示某个文件的名字,也可以用它来表示目录里一组文件的名字。如果它表示的是一组文件,那么你还可以用list 方法来进行查询,让它会返回String数组。由于元素数量是固定的,因此数组会比容器更好一些。如果你想要获取另一个目录的清单,再建一个File对象就是了。实际上,叫它 FilePath可能会更好一些。下面我们举例说明怎样使用这个类及其相关的FilenameFilter接口。
目录列表器
假设你想看看这个目录。有两个办法。一是不带参数调用list 。它返回的是File对象所含内容的完整清单。但是,如果你要的是一个限制性列表restricted list的话 ?? 比方说,你想看看所有扩展名为.java的文件 ?? 那么你就得使用目录过滤器了。这是一个专门负责挑选显示File对象的内容的类。
下面就是源代码。看看,用了ays.sort 和11章的AlphabeticComparator之后,我们没费吹灰之力就对结果作了排序按字母顺序:
//: c12:DirList.java
// Displays directory listing using regular expressions.
// Args: D.*\.java
import java.io.*;
import java.util.*;
import ex.*;
import l.*;
public class DirList public static void mainString[] args File path new File.; String[] list; ifargs.length 0 list path.list; else list path.listnew DirFilterargs[0]; Arrays.sortlist, new AlphabeticComparator; forint i 0; i list.length; i++ ntlnlist[i];
class DirFilter implements FilenameFilter private Pattern pattern;public DirFilterString regex pattern Ppileregex;public boolean acceptFile dir, String name // Strip path information, search for regex: return pattern.matcher new ches;
///:~
DirFilter实现了FilenameFilter接口。我们来看看FilenameFilter究竟有多简单:
p
文档评论(0)