歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Java中的輸入與輸出流詳解

輸入與輸出流

在Java中,信息的輸入和輸出(I/O)是程序設計語言中的一個很重要的部分。在任何程序中都離不開信息的輸入和輸出。在面向對象語言中,輸入和輸出都是通過數據流來實現的。處理數據流的類主要被放在包java.io中。因為前面已經講過I/O流的基本知識,所以下面只是對之前只是的鞏固和補充。

1、數據流的劃分

按照處理數據的單位劃分,Java定義了兩種類型的數據流:字節流和字符流。字節流是用來處理字節的輸入和輸出的,各種數據都可以用字節來表示,包括數字數據、程序和字節碼等。字符流是用來處理字符的輸入和輸出的,它只處理文本化的數據,任何涉及文本的數據類型都應該使用字符流,包括文本文件、網頁以及其他的文本類型。

字節流類InputStream和OutputStream是兩個抽象類,InputStream包括了字節輸入流的所有方法,OutputStream包括了字符輸出流的所有方法。真正用來做數據輸入和輸出處理的是這兩個抽象類的各個具體的子類。這些子類可以針對不同的輸入和輸出進行處理。下面是輸入字節流與輸出字節流的表:

描 述

FileInputStream

文件字節輸入流

ByteArrayInputStream

字節數組輸入流

PipedInputStream

管道輸入流

BufferedInputStream

緩沖輸入流

FilterInputStream

過濾字節輸入流

ObjectInputStream

對象輸入流

DataInputStream

包含讀取Java標准數據類型方法的輸入流

描 述

FileOutputStream

文件字節輸出流

ByteArrayOutputStream

字節數組輸出流

PipedOutputStream

管道輸出流

BufferedOutputStream

緩沖輸出流

FilterOutputStream

過濾字節輸出流

ObjectOutputStream

對象輸出流

DataOutputStream

包含讀取Java標准數據類型方法的輸出流

PrintStream

包含print()和println()的輸出流

通過這些字節輸入流和字節輸出流類來創建數據流一遍完成數據的輸入和輸出。例如將影像、聲音等數據寫入文件和從文件裡讀取數據時,就要用到FileInputStream和FileOutputStream類。

字符流類Reader和Writer也是兩個抽象類。由於Java采用16位的Unicode字符編碼,所以這些抽象類處理的是Unicode的字符流。用來作數據輸入和輸出處理的是Reader和Writer的子類,這些子類可以針對不同的輸入和輸出進行處理。輸入和輸出字符流如下表所示:

輸入字符流

描 述

FileReader

文件字符輸入流

CharArrayReader

從字符數組讀取的輸入流

StringReader

讀取字符串的輸入流

PipedReader

管道字符輸入流

BufferedReader

緩沖輸入流

FilterReader

過濾字符輸入流

InputStreamReader

將字節輸入流轉換為字符輸入流

輸出字符流

描 述

FileWriter

文件字符輸出流

CharArrayWriter

從字符數組讀取的輸出流

StringWriter

讀取字符串的輸出流

PipedWriter

管道字符輸出流

BufferedWriter

緩沖輸出流

FilterWriter

過濾字符輸出流

OutputStreamWriter

將字節輸出流轉換為字符輸出流

PrintWriter

打印字符輸出流

上表中這些字符輸入流和字符輸出流都是抽象類Reader和Writer的子類,可以通過這些字符輸入流和字符輸出流來創建數據流以便完成數據的輸入和輸出。例如將”純文本”數據寫入文件和從文件裡讀取數據時,就要用到FileReader和FileWriter類。

Copyright © Linux教程網 All Rights Reserved