zoukankan      html  css  js  c++  java
  • 08_1_IO

    08_1_IO

    1. 输入/输出流的分类

    java.io包中定义了多个流类型(类或抽象类)来实现输入/输出功能;可以从不同的角度对其进行分类:

    按数据流的方向不同可以分给输入流和输出流。

    按处理数据单位不同可以分为字节流和字符流。

    按照功能不同可以分为节点流和处理流。

    字节流

    字符流

    输入流

    InputStream

    Reader

    输出流

    OutputStream

    Write

    2. 节点流和处理流

    节点流为可以从一个特定的数据源(节点)读写数据(如:文件,内存)

    处理流是“连接”在已存在的流(节点流或处理流)之上,通过对数据的处理为程序提供更为强大的读写功能。

    3. 节点流类型

    类型

    字符流

    字节流

    File(文件)

    FileReader FileWriter

    FileInputStream FileOutputStream

    Memory Array

    CharArrayReader

    CharArrayWriter

    ByteArrayInputStream

    ByteArrayOutputStream

    Memory String

    StringReader

    StringWriter

    Pipe(管道)

    PipedReader

    PipedWriter

    PipedInputStream

    PipedOutputStream

    4. 处理流类型

    处理类型

    字符流

    字节流

    Buffering

    BufferedReader

    BufferedWriter

    BufferedInputStream

    BufferedOutputStream

    Filtering

    FilterReader

    FilterWriter

    FilterInputStream

    FilterOutputStream

    Converting between bytes and character

    InputStreamReader

    OutputStreamWriter

    Object Serialization

    ObjectInputStream

    ObjectOutputStream

    Data coversion

    DataInputStream

    DataOutputStrearm

    Counting

    LineNumberReadeer

    LineNumberInputStream

    Peeking ahead

    PushbackReader

    PushbackInputStream

    Printing

    PrintWriter

    PrintStream

    5. Object

    serializable 序列化,将一个对象,转换为字节流保存到硬盘。

    package Test;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutput;
    import java.io.ObjectOutputStream;
    import java.io.Serializable;
    
    public class TestObjectIO {
    
    	public static void main(String[] args) throws Exception {
    		T t = new T();
    		t.k = 30;
    		FileOutputStream fos = new FileOutputStream("F:/TestObjectIO.txt");
    		ObjectOutputStream oos = new ObjectOutputStream(fos);
    		oos.writeObject(t);
    		oos.flush();
    		oos.close();
    		FileInputStream fis = new FileInputStream("F:/TestObjectIO.txt");
    		ObjectInputStream ois = new ObjectInputStream(fis);
    		T a = (T)ois.readObject();
    		System.out.println(a.i +" " + a.j + " " + a.d + " " + a.k);
    		fos.close();
    		fis.close();
    		ois.close();
    	}
    }
    class T implements Serializable {
    
    	int i = 10;
    	int j = 20;
    	double d = 3.2;
    	//transient 在序列化的时候,不予考虑,也及读出来之后为0
    	transient int k = 15;
    }
    
  • 相关阅读:
    kvm添加磁盘
    python学习1
    ubuntu使sudo不需要密码
    磁盘挂载
    github/gitlab添加多个ssh key
    生成SSH key
    git 删除追踪状态
    angular2+ 初理解
    本地项目上传到GitHub
    new Date()之参数传递
  • 原文地址:https://www.cnblogs.com/flyback/p/8949267.html
Copyright © 2011-2022 走看看