首页 > 技术文章 > io输出输入流分类和用法

cyqtq 2020-10-30 15:40 原文

IO流的分类

根据处理数据类型不同分为:字符流和字节流。

字节流与字符流的区别:

  1.字节流以字节为单位。字符流以字符为单位,一次可读取多个字节。

  2.字节流能处理所有类型的数据,而字符流只能处理字符类型的数据

 

②根据数据流向不同分为:输入流和输出流。

输入流与输出流的区别:

  输入流只能进行读操作,而输出流只能进行写操作。

Reader 是所有的输入字符流的父类,它是一个抽象类。

主要的方法:
read() 读取一个字符;
close()关闭流对象;

Writer 是所有的输出字符流的父类,它是一个抽象类。

主要的方法是:
close()  关闭输出流
write()   将数据写入到输输出流中。

InputStream 是所有的输入字节流的父类,它是一个抽象类。

 

常用方法:

 

available() 获取输入流的大小。
close();关闭输入流。
read();读取输入流 。

 

OutputStream 是所有的输出字节流的父类,它是一个抽象类。

close(); 关闭此输出流并释放与此流有关的所有系统资源。
flush();刷新此输出流并强制写出所有缓冲的输出字节。
write(byte[] b) 将 b.length 个字节从指定的 byte 数组写入此输出流。

public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        FileReader fr=new FileReader("D:\\io0803\\zuoye.txt");
        FileWriter fw=new FileWriter("D:\\io0803\\a\\zuoye.txt");
        Date ks=new Date();
        int len=0;
        while((len=fr.read())!=-1){
            fw.write(len);
            fw.flush();
        }
        Date js=new Date();
        System.out.println(js.getTime()-ks.getTime());
        fr.close();
        fw.close();
    
        
    }

public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        FileReader fr=new FileReader("D:\\io0803\\zuoye.txt");
        FileWriter fw=new FileWriter("D:\\io0803\\a\\zuoye2.txt");
        Date ks=new Date();
        char[] ch=new char[1024];
        int len=0;
        while((len=fr.read(ch))!=-1){
            fw.write(ch, 0, len);
            fw.flush();
        }
        Date js=new Date();
        System.out.println(js.getTime()-ks.getTime());
        fr.close();
        fw.close();
        
    }

推荐阅读