java I/O系统2

1.       File,FilenameFilter接口:

Filer list()方法返回一个String[]数组.可以在list中加入FilenameFilter的接口实现.对文件过滤.其中需要覆盖一个boolean accept(File dir,String name)方法.dir为某个特定文件所在目录的File对象,name为文件名.

2.       输入和输出:任何继承了InputStreamReader的类都有一个read()方法,任何继承OutputStreamWriter的类,都有一个write()方法。

InputStream的输入数据源有:字节数组、String对象、文件、“管道”、其它数据源(Internet。其中每个数据源都有对应的InputStream的子类。(ByteArrayInputStreamStringBufferInputStreamFileInputStreamPipedInputStreamSequenceInputStreamFilterInputStream

OutputStream为输出目标:字节数组(没有String,不过可以用字节数组生成)、文件或管道。分别对应OutputStream的子类:ByteArrayOutputStreamFileOutputStreamPipedOutputStreamFilterOutputStream

修饰器:利用层叠的数个对象为单个对象动态地、透明地添加职责的方式,称作“修饰器”(Decorator)模式。要求:修饰器必须具有和它所修饰的对象相同的接口。

其中FilterInputStream为所有输入修饰器的其类,继承自InputStream。其子类有:DataInputStreamBufferedInputStreamLineNumberInputStreamPushbackInputStream

FilterOutputStream为输出的基类。继承OutputStream,其子类有:DataOutputStreamPrintStreamBufferedOutputStream

数据的来源和去处:

来源与去处:Java 1.0

相应的Java 1.1

InputStream

Reader

适配器:InputStreamReader

OutputStream

Writer

适配器:OutputStreamWriter

FileInputStream

FileReader

FileOutputStream

FileWriter

StringBufferInputStream

StringReader

(无相关类)

StringWriter

ByteArrayInputStream

CharArrayReader

ByteArrayOutputStream

CharArrayWriter

PipedInputStream

PipedReader

PipedOutputStream

PipedWriter

更改流的行为:

过滤器:Java 1.0

相应的Java 1.1

FilterInputStream

FilterReader

FilterOutputStream

FilterWriter(抽象类,没有子类)

BufferedInputStream

BufferedReader(也有readLine())

BufferedOutputStream

BufferedWriter

DataInputStream

使用DataInputStream(当需要使用readLine()时,应该使用BufferedReader)

PrintStream

PrintWriter

LineNumberInputStream(不赞成)

LineNumberReader

StreamTokenizer

StreamTokenizer(使用接受Reader的构造器)

PushbackInputStream

PushBackReader

3.       自我独立的类:RandomAccessFile。实现了DataInputDataOutput接口,其它和Stream无任何关系。在JDK 1.4中该类大部分功能由存储映射文件取代。

4.       I/O流的典型使用方式:

Ø         BufferedReader in=new BufferedReader(new FileReader(“文件名”))

Ø         BufferedReader stdin=new BufferedReader (new InputStreamReader (System. in));

Ø         StringReader in2=new StringReader(“字符串”)

Ø         DataInputStream in3=new DataInputStream (new ByteArrayInputStream (byte []));

Ø         PrintWriter out1=new PrintWriter(new BufferedWriter(new FileWriter(“文件名”)));

Ø         DataOutputStream out2=new DataOutputStream(new BufferedOutputStream(new FileOutputStream(“文件名”)));

Ø         DataInputStream in5=new DataInputStream(new BufferedInputStream(new FileInputStream(“文件名”)));

5.       几种输入流的结束方法:无修饰的read()结束标志-1、有修饰的 available()结束标志 0readLine() 结束标志null

6.       System. outPrintStream. PrintWriter有可能用PrintStream作为参数的构造函数。

7.       标准I/O重定向:System类提供的方法有:setIn(InputStream)setOut(PrintStream)setErr(PrintStream);

8.       I/O:主要指JDK1.4引入的java.nio.*。这里有两个新概念:通道和缓冲器,我们一般只是和缓冲器打交道,直接和通道交互的缓冲器是ByteBuffer,其属于java.nio.*。另外有一个新的类:FileChannel。还要注意ByteBufferflip()clear()方法。Flip主要用在读/写转换的时候。更有用处的FileChannel的两个方法:TransferFrom, transferTo.

ByteBuffer的几个获取基本数据类型的方法:asCharBuffer,asShortBuffer,asIntBuffer,asLongBuffer,asFloadBuffer,asDoubleBuffer.然后就可调用put方法向缓冲器中填入数据。读取时直接使用:getTypeName.

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值