学习Java的笔记(5)

2008-02-23 09:38:13来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

121、Stream根据功能可分为数据侦听器流(data Sink Stream,侦听器:内存、管道、文件)和进程流

(Processing Stream)
122、在谈Java的流类之前,先谈如何生成一个File对象,它时一个和流无关的类。File对象可用来生成

和文件(及其所在的路径)或目录结构相关的对象,由于不同的系统可能会有不同的目录结果表示法,使

用File可完成和系统无关的目的(使用抽象的路径表示法)。
123、File对象生成方法:
File(String path):将一个代表路径的字符串转换为抽象的路径表示法
File(String parent,String child):parent代表目录,child代表文件,child不可为空
File(File parent,String child):parent代表一个File对象的目录,child代表文件,child不

可为空
124、File提供一些方法来测试或检查一个File对象:
boolean exists():若该文件或目录存在,则返回true
boolean isDirectory():若为目录则返回true
File[] listFiles():得到该对象所代表的目录下的File对象数组,若不为该目录,则返回null
String[] list():同上,但返回一个String数组
long length():得到和该对象相关的文件的大小,若不存在,则返回值为0L
String toString():得到抽象路径表示法
String getParent():得到抽象路径表示法的目录部分(不包含最后一个部分)
String getName():得到抽象路径表示法的最后一个部分
125、改变一个File对象的方法:
boolean renameTo(File newName):将目前File对象所代表的路径名改为newName所代表的路径名

。若更改成功,则返回值为true
boolean mkdir():生成一个新的目录。入成功,则返回值为true
boolean mkdirs():生成一个新的目录,包含不存在的子目录。若成功,返回值为true
boolean delete():删除目前File对象所代表的文件或目录,若是目录,则需为空的。若成功,

返回true
126、没有参数的listFiles()会列出所有的文件名。使用File[] listFiles(FilenameFilter filter)过

滤某些特殊的扩展名或包含某些字符的文件名。FilenameFilter是一个接口,必须生成一个实现它的类来

负责过滤文件名,该类需取代FilenameFilter惟一的方法accept()。boolean accept(File dir,String

name),若返回为true则会将目前检查的文件包含在listFiles()的返回数组内。
127、字节流的构造函数:
FileInputStream(String name):打开文件name用以读取数据
FileInputStream(File file):打开和File对象file相关联的文件,用以读取数据
FileOutputStream(String name):打开文件name用以写入数据
FileOutputStream(File file):打开和File对象file相关联的文件,用以写入数据
FileOutputStream(String name,boolean append):打开文件name用以写入数据,若append为

true,则写入的数据会加到原有的文件后。
128、字节数组(byte array)的构造函数:
ByteArrayInputStream(byte[] buffer):生成一个字节数组的输入流,并指定一个字节数组

buffer为此输入流的流缓冲区。
ByteArrayOutputStream():生成一个字节数组的输出流,其缓冲区的默认初始大小为32字节,若

有需要,缓冲区的大小会随之增加
ByteArrayOutputStream(int size):同上,但分配size字节的初始大小给缓冲区。
129、一些ByteArrayOutStream常用的方法:
int size():返回此流缓冲区的大小
byte[] toByteArray():生成一个新的字节数组,并将流的内容复制到此自己数组。
String toString():将流的内容转换为String对象。
130、文件的合并:SequenceInputStream
SequenceInputStream(InputStream head,InputStream tail):生成一个新的输入流,先读入

head,后是tail
SequenceInputStream(Enumeration enum):将enum内的流根据序合并韦一个新的输入流,enum内

必须是InputStream对象。
131、Vector的功能就像一个数组,但它能根据需要来改变大小。
132、管道(pipe)提供一种线程间通信的方法,可由于IPC(Inter-Process Communication,进程间通

信)或是ITC(Inter-Thread Communication,线程间通信),但它无法执行不同主机之间的通信。
133、一个输入管道是用来接收一个输出管道所写出的数据,因此,一个线程会负责送出

(PipedOutputStream对象)数据,而另一个线程需负责接收(PipedInputStream对象)这些数据。
134、管道的数据流(data flow)是单向的,需要生成另一组输入和输出管道来负责另一个方向的数据传

送。
135、如果要将管道输出流的数据送到管道输入流,可使用
PipedOutputStream(PipedInputStream pipeIn)或
connect(PipedInputStream pipeIn)
140、字符流的类:1),BufferedReader是一种过滤器(filter)(extends FilterReader)。过滤器用

来将流的数据加以处理再输出。构造函数为:
BufferedReader(Reader in):生成一个缓冲的字符输入流,in为一个读取器
BufferedReader(Reader in,int size):生成一个缓冲的字符输入流,并指定缓冲区的大小为

size
常用的方法为:
String readLine():读入一行的文字(以\n或\r结尾),返回的String对象并不包含\n或\r,若

已达流的末端则返回null
当使用缓冲流的read()或readLine()读取数据时,先会尝试从缓冲区读取,若缓冲区中并没有数

据,则会尽可能的将数据读入缓冲区中,以留待后续的读取。
141、2),LineNumberReader也是一种过滤器,而它也是一种缓冲流(extends BufferedReader),可用

来记录读入的行数,这里所谓的一行时以\n或\r结尾。常用方法:
int getLineNumber():得到目前的行数。
142、3),PrinterWriter也是一种过滤器(extendes FilterWriter),可用来将输出导入某种设备。
143、I/O流的一个特点是它们能经过流链接的方式结合在一起,每个流类会执行特殊的工作再将结果传到

下一个链接,可使用过滤器将流链接在一起。
BufferedReader inBuffer=new BufferedReader(new FileReader(inFile));
使用流链接时,只需要关闭最外层的链接流,其他链接的流会自动关闭。可以使用的链接是最后一个流(

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Ball.java---BallGame

下一篇:初用apache.commons.beanutils.BeanUtils