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;
    }
    
  • 相关阅读:
    试验thrift做后端rpc,nginx做web服务器, python后端php前端
    DBSCAN算法
    用VAE(variational autoencoder)做sentence embedding/representation或者其他任何结构数据的热presentation
    关于rnn神经网络的loss函数的一些思考
    神经网络建模的一些感悟;
    embedding based logistic regression-神经网络逻辑回归tensorflow
    Farseer.net轻量级开源框架说明及链接索引
    什么是表达式树,它与表达式、委托有什么区别?(1)
    Farseer.net轻量级ORM开源框架 V1.x 教程目录
    Farseer.net轻量级ORM开源框架 V1.8版本升级消息
  • 原文地址:https://www.cnblogs.com/flyback/p/8949267.html
Copyright © 2011-2022 走看看