Java I/O系统

字节流

InputStream类型

InputStream的作用是用来表示那些从不同数据源产生输入的类

功能构造器参数
ByteArrayInputStream允许将内存中的缓冲区当作InputStream使用缓冲区(字节数组)
StringBufferInputStream(弃用)将String转换成InputStream字符串
FileInputStream用于从文件读取信息字符串,表示文件名、文件或FileDescriptor对象
PipedInputStream产生用于写入相关PipedOutputStream的数据,实现”管道化概念”PipedOutStream
SequenceInputStream将两个或多个InputStream对象转换成单一InputStream两个InputStream对象或一个容纳InputStrean对象的容器Enumeration
FilterInputStream抽象类,作为装饰器的接口,为其他的InputStream类提供有用功能见下下表

OutputStream类型

该类别的类决定了输出所要去往的目标

功能构造器参数
ByteArrayOutputStream见上表见上表
FileOutputStream
PipedOutputStream
FilterOutputStream

通过FilterInputStream从InputStream读取数据

功能构造器参数
DataInputStream从流读取基本数据类型(int, char等)InputStream
BufferedInputStream避免每次读取时都得进行实际写操作,代表使用缓冲区
LineNumberInputStream(弃用)跟踪输入流中的行号,可调用getLineNumber()和setLineNumber(int)
PushbackInputStream具有”能弹出一个字节的缓冲区”.可以将读到的最后一个字符回退InputStream,通常作为编译器的扫描器

通过FilterOutputStream从OutputStream读取数据

功能构造器参数
DataOutputStream
PrintStream
BufferedOutputStream

字符流

Reader和Writer

提供兼容Unicode与面向字符的I/O功能

来源和去处:Java 1.0类相应的Java 1.1类
InputStreamReader (适配器:InputStreamReader)
OutputStreamWriter (适配器:OutputStreamReader)
FileInputStreamFileReader
FileOutputStreamFileWriter
StringBufferInputStream(弃用)StringReader
(无相应的类)StringWriter
ByteArrayInputStreamCharArrayReader
ByteArrayOutputStreamCharArrayWriter
PipedInputStreamPipedReader
PipedOutputStreamPipedWriter

FilterReader和FilterWriter

过滤器: Java 1.0类相应的 Java1.1类
FilterInputStreamFilterReader
FilterOutputStreamFilterWriter
BufferedInputStreamBufferdReader
BufferedOutputStreamBufferedWriter
DataInputStreamDataInputStream(需要使用Readline()时为BufferdReader)
PrintStreamPrintWriter
LineNumberInputStream(弃用)LineNumberReader
StreamTokenizerStreamTokenizer
PushbackInputStreamPushbackReader

未发生变化的类()

没有相应类
DataOutputStream
File
RandomAccessFile
SequenceInputStream
BufferReader in = new BufferReader(new FileReader(filename));
String s = in.readLine();
in.close(); //关闭文件
StringReader in = new StringReader("asdfg");
int c;
while((c = in.read())!=-1)    //read()以int形式返回下一字节
    System.out.print((char)c) //类型转换为char打印
    String s = "asdfg";
    DataInputStream in = new DataInputStream(new                ByteArrayInputStream(s.getBytes()));
    while(in.available()!=0) //查看还有多少可供存取的字符
    System.out.println((char)in.readByte());

RandomAccessFile类(转)

该对象并不是流体系中的一员,其封装了字节流,同时还封装了一个缓冲区(字符数组),通过内部的指针来操作字符数组中的数据。 该对象特点:


  • 该对象只能操作文件,所以构造函数接收两种类型的参数:a.字符串文件路径;b.File对象。
  • 该对象既可以对文件进行读操作,也能进行写操作,在进行对象实例化时可指定操作模式(r,rw)

注意:该对象在实例化时,如果要操作的文件不存在,会自动创建;如果文件存在,写数据未指定位置,会从头开始写,即覆盖原有的内容。 可以用于多线程下载或多个线程同时写数据到文件。
RandomAccessFile rf = new RandomAccessFile(file, "r"); //只读
    rf.read();
RandomAccessFile rf = new RandomAccessFile(file, "rw"); //读写
    rf.write(2);

NIO

http://blog.youkuaiyun.com/u013256816/article/details/51457215#t3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值