javaI/O技术

来源:互联网 发布:mac pro 2016屏幕涂层 编辑:程序博客网 时间:2024/06/06 06:04
流的方向:


输入流:数据源到程序(inputStream,Reader读进来)
输出流:程序到目的地(OutPutStream,Writer写出去)
处理数据单元:


字节流:按照字节读取数据(InputStream,OutputStream)
字符流:按照字符读取数据(Reader,Writer)
功能不同


节点流:直接从数据源或目的地读写数据
处理流:不直接连接到数据源或目的地,是处理流的流,童工对其他流的处理提高程序的性能。
Jdk提供的流继承了四大类:InputStream(字节输入流),OutputStream(字节输出流),Reader(字符输入流),Writer(字符输出流)。


以下是java中io中常用的流。



InputStream


抽象类java.io.InputStream是所有字节输入流类型的父类,该类中定义了以字节为单位读取数据的基本方法,并在其子类中进行了分化和实现.


三个基本的read方法:


int read()
int read(byte[] buffer)
int read(byte[] buffer,int offset,int length)
其他方法:


void close()
int available()
skip(long n)
boolean markSupported()
InputStream类层次



<pre name="code" class="plain">import java.io.File ;import java.io.InputStream ;import java.io.FileInputStream ;public class InputStreamDemo{    public static void main(String args[]) throws Exception{    // 异常抛出,不处理        // 第1步、使用File类找到一个文件        File f= new File("d:" + File.separator + "test.txt") ;    // 声明File对象        // 第2步、通过子类实例化父类对象        InputStream input = null ;    // 准备好一个输入的对象        input = new FileInputStream(f)  ;    // 通过对象多态性,进行实例化        // 第3步、进行读操作        byte b[] = new byte[1024] ;        // 数组大小由文件决定        int len = 0 ;         int temp = 0 ;            // 接收每一个读取进来的数据        while((temp=input.read())!=-1){            // 表示还有内容,文件没有读完            b[len] = (byte)temp ;            len++ ;        }        // 第4步、关闭输出流        input.close() ;                        // 关闭输出流\        System.out.println("内容为:" + new String(b,0,len)) ;    // 把byte数组变为字符串输出    }};


0 0
原创粉丝点击