程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> [JAVA · 初級]:20.IO流技術

[JAVA · 初級]:20.IO流技術

編輯:JAVA綜合教程

[JAVA · 初級]:20.IO流技術


原理

\

 

在Java程序中,對於數據的輸入/輸出操作以“流” (stream) 方式進行;J2SDK提供了各種各樣的“流”類,用以獲取不同種類的數據;程序中通過標准的方法輸入或輸出數據。

概念

數據源data source. 提供原始數據的原始媒介。常見的:數據庫、文件、其他程序、內存、網絡連接、IO設備。

數據源就像水箱,流就像水管中流著的水流,程序就是我們最終的用戶。 流是一個抽象、動態的概念,是一連串連續動態的數據集合。

\

 

分類

 

? 流的方向:

輸入流:數據源到程序(InputStream、Reader讀進來)

輸出流:程序到目的地(OutPutStream、Writer寫出去)

? 處理數據單元:

字節流:按照字節讀取數據(InputStream、OutputStream)

字符流:按照字符讀取數據(Reader、Writer)

? 功能不同:

節點流:可以直接從數據源或目的地讀寫數據。

處理流:不直接連接到數據源或目的地,是處理流的流。通過對其他流的處理提高程序的性能。

? 節點流和處理流的關系:

節點流處於io操作的第一線,所有操作必須通過他們進行;處理流可以對其他流進行處理(提高效率或操作靈活性)。

 

體系

\

 

字節流

 

? ByteArrayInutStream和ByteArrayOutputStream

? 數據源或目的地為:字節數組

?BufferedInputStream和BufferedOutputStream是處理流,通過內部緩存數組來提高操作流的效率。

? DataInputStream和DataOutputStream提供了可以存取所有Java基礎類型數據(如:int,double 等)的方法。

demo

 

package com.bjsxt.wsl;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

public class HelloIn {
	public static void main(String[] args) throws IOException {
		//獲取文件路徑
		InputStream inputStream = new FileInputStream("D:\\hello.txt");
		//一般所使用的方式
		StringBuilder builder = new StringBuilder();
		byte[] bs = new byte[1024];
		int num = 0;
		//開始讀取數據
		while ((num = inputStream.read(bs)) != -1) {
			builder.append(new String(bs));
		}
		System.out.println(builder);
	}

 

字符流

? Reader:

用於讀取字符流的抽象類,數據單位為字符。

? Writer:

寫入字符流的抽象類。

? BufferReader和BufferWriter

讀取文本一般使用這一對!

處理流

對象的序列化和反序列化:

ObjectInputStream和ObjectOutputStream,數據源或目的地是:對象!

打印流:

PrintWriter和PrintStream的輸出操作不會拋出異常,用戶通過檢測錯誤狀態獲取錯誤信息。

System.out 就是打印流

InputStreamReader和OutputStreamWrite為處理流:用於將字節流轉化成字符流。

File類

文件和目錄路徑名的抽象表示形式。一個File對象可以代表一個文件或目錄,但是不是完全對應的。建立File對象不會對文件系統產生影響。

業務思想

IO流技術的使用,使得我們的工作更為順暢,無論是從物理存儲的角度來看待,還是從邏輯思維中來理解,都變得很容易接受。

這裡只是簡單地介紹了IO流技術的一部分,很多細節需要到項目中去實踐,才能夠不斷地有新的認識。

由於要經常考慮到異常問題的出現,對於問題的考慮也會比較全面,對於增強我們的業務能力有很大提升呢!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved