欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

IO分类

程序员文章站 2024-03-07 08:19:02
...

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 功能分类

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

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

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();
                }
            }
        }

    }

}