08_1_IO

08_1_IO

1. 輸入/輸出流的分類

java.io包中定義了多個流類型(類或抽象類)來實現輸入/輸出功能;能夠從不一樣的角度對其進行分類:java

按數據流的方向不一樣能夠分給輸入流和輸出流。spa

按處理數據單位不一樣能夠分爲字節流和字符流。對象

按照功能不一樣能夠分爲節點流和處理流。blog

 

字節流ip

字符流內存

輸入流ci

InputStreamit

Readerio

輸出流table

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;
}
本站公眾號
   歡迎關注本站公眾號,獲取更多信息