IO分类

IO流

1 流的地位.

没有IO流的编程语言不能进行人机交互,失去存在的价值。

2 流的概念和作用.

流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。
即数据在两设备间的传输称为流,流的本质是数据传输。

3 IO流的分类

3.1 处理数据类型的不同分类

分类为:字符流和字节流。
字符流父类(抽象类):Reader Writer
字符流子类:FileReader FileWriter
字节流父类(抽象类):InputStream OutputStream
字节流子类:FileInputStream FileOutputStream

3.2 数据流向不同分类

分类为:输入流和输出流。
输入流:InputStream(抽象类) FileInputStream Reader(抽象类) FileReader
输出流:OutputStream(抽象类) FileOutputStream Writer(抽象类) FileWriter

3.3 功能分类

分类为:节点流和处理流。(节点流:想象成整个管道的头部,和结尾部位)
处理流和节点流的区分方法:节点流在新建时需要一个数据源(文件、网络)作为参数,而处理流需要一个节点流作为参数。
这里写图片描述

下面演示基本文件读取操作

package edu.swpu.peng.io;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class FileInOut {

    public static void main(String[] args) {
        /*
         * IO基本操作:复制文件
         */
        // 1.首先明确方向,输入。数据源:文件。目的地:java程序。从而确定输入流
        BufferedReader bufr = null;
        BufferedWriter bufw = null;
        try {
            bufr = new BufferedReader(new FileReader("IO.txt"));
            bufw = new BufferedWriter(new FileWriter("src/IO.txt"));
            //3.开始读数据,读到String中
            String buf = null;
            //4.读一次,写一次。
            while((buf = bufr.readLine()) != null) {
                bufw.write(buf);
                bufw.flush();
                bufw.newLine();
            }

        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            // 2.不关流会罚款通价:30元/次
            if(bufr != null) {
                try {
                    bufr.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            if(bufw != null) {
                try {
                    bufw.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }

    }

}

猜你喜欢

转载自blog.csdn.net/xsp_happyboy/article/details/78028639