- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java
Java 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对象的内容的类。
下面就是源代码。看看,用了java.utils.Arrays.sort( )和11章的AlphabeticComparator之后,我们没费吹灰之力就对结果作了排序(按字母顺序):
//: c12:DirList.java
// Displays directory listing using regular expressions.
// {Args: D.*\.java}
import java.io.*;
import java.util.*;
import java.util.regex.*;
import com.bruceeckel.util.*;
public class DirList {
public static void main(String[] args) {
File path = new File(.);
String[] list;
if(args.length == 0)
list = path.list();
else
list = path.list(new DirFilter(args[0]));
Arrays.sort(list, new AlphabeticComparator());
for(int i = 0; i list.length; i++)
System.out.println(list[i]);
}
}
class DirFilter implements FilenameFilter {
private Pattern pattern;
public DirFilter(String regex) {
pattern = Ppile(regex);
}
public boolean accept(File dir, String name) {
// Strip path information, search for regex:
return pattern.matcher(
new File(name).getName()).matches();
}
} ///:~
D
您可能关注的文档
- 《固态发酵法白酒生产工艺》—毕业论文设计.doc
- 《金仕佰啤酒大学生市场季度营销策划案》(58页)—毕业论文设计.doc
- 《旅游商报》全新改版-商业谋划方案书—毕业论文设计.doc
- 《全国新增千亿斤粮食生产能力规划》阳谷县项目实施方案—毕业论文设计.doc
- 《塑料原材料商业谋划书》—毕业论文设计.doc
- 《武宣金鸡土地整治项目设计方案 》—毕业论文设计.doc
- 《信诚物业山湖海小区前期物业服务方案》(81页)—毕业论文设计.doc
- 【经典外文翻译】--底土的土壤结构和饱和导水率—毕业论文设计.doc
- 【经典外文翻译】--电力电子技术(英文+译文)—毕业论文设计.doc
- 【经典外文翻译】--基于现场总线监测系统的plc控制制造系统—毕业论文设计.doc
文档评论(0)