java io 学习

io最基础的流
字节输入流:inputStream
字节输出流:outputStream
字符输入流:Reader
字符输出流:Writer

文件对象:File

基本io流类图:
stickPicture.png

java.io.File类的使用

IO原理及流的分类
输入input:读取外部数据(磁盘、光盘等存储设备的数据)到程序(内存)中。
输出output:将程序(内存)数据输出到磁盘、光盘等存储设备中
流的分类
按操作数据单位不同分为:字节流(8 bit),字符流(16 bit)
按数据流的流向不同分为:输入流,输出流
按流的角色的不同分为:节点流,处理流

节点流可以从一个特定的数据源读写数据
处理流是“连接”在已存在的流(节点流或处理流)之上,通过对数据的处理为程序提供更为强大的读写功能,比如缓冲流。
stickPicture (1).png

stickPicture (2).png

文件流
FileInputStream / FileOutputStream / FileReader / FileWriter

缓冲流
BufferedInputStream / BufferedOutputStream /
BufferedReader / BufferedWriter
缓冲流的使用
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

public class BufferIoDemo {

public static void main(String[] args) {
    try {
        String src = "E:\\节点流和处理流.png";
        String desc = "E:\\节点流和处理流2.png";
        InputStream inputStream = new FileInputStream(new File(src));
        OutputStream outputStream = new FileOutputStream(new File(desc));
        BufferedInputStream bis = new BufferedInputStream(inputStream);
        BufferedOutputStream bos = new BufferedOutputStream(outputStream);
        byte[] b = new byte[1024];
        int off = 0;
        int len = 1024;
        while ((len = bis.read(b, off, len)) != -1) {
            bos.write(b, off, len);
        }
        bos.flush();
        bos.close();
        bis.close();
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

}

转换流
InputStreamReader / OutputStreamWriter
标准输入/输出流
打印流(了解)
PrintStream / PrintWriter
数据流(了解)
DataInputStream / DataOutputStream
对象流 —-涉及序列化、反序列化
ObjectInputStream / ObjectOutputStream
随机存取文件流
RandomAccessFile

标签: none