Java I/O系统

来源:互联网 发布:恒扬数据股份有限公司 编辑:程序博客网 时间:2024/05/21 08:59

字节流

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类 InputStream Reader (适配器:InputStreamReader) OutputStream Writer (适配器:OutputStreamReader) FileInputStream FileReader FileOutputStream FileWriter StringBufferInputStream(弃用) StringReader (无相应的类) StringWriter ByteArrayInputStream CharArrayReader ByteArrayOutputStream CharArrayWriter PipedInputStream PipedReader PipedOutputStream PipedWriter

FilterReader和FilterWriter

过滤器: Java 1.0类 相应的 Java1.1类 FilterInputStream FilterReader FilterOutputStream FilterWriter BufferedInputStream BufferdReader BufferedOutputStream BufferedWriter DataInputStream DataInputStream(需要使用Readline()时为BufferdReader) PrintStream PrintWriter LineNumberInputStream(弃用) LineNumberReader StreamTokenizer StreamTokenizer PushbackInputStream PushbackReader

未发生变化的类()

没有相应类 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.csdn.net/u013256816/article/details/51457215#t3

0 0
原创粉丝点击