第9章輸入/輸出流與文件操作
9.1什么是流?流有什么用?面向對象語言為什么需要流?哪些場合需要流?答:流是指一組有順序、有起點和終點的字節(jié)集合,是對數(shù)據(jù)傳輸?shù)目偡Q或抽象(也就是數(shù)據(jù)在兩個對象之間的傳輸稱為流)。
流的作用就是使數(shù)據(jù)傳輸操作獨立于相關設備。在面向對象的程序設計中,數(shù)據(jù)的傳輸和流動具有廣泛性,可以在內存與外部設備之間傳輸,還可以從內存到內存,甚至可以從一臺計算機通過網(wǎng)絡流向另一臺計算機等,故面向對象語言采用流機制。
在標準輸入/輸出、在文件的讀/寫等操作中都需要流。
9.2Java提供了哪些流類?各種流類之間的關系是怎樣的?什么場合需要使用什么流類?
答:Java中按照流的方向性,流分為輸入流和輸出流兩大類。按照流中元素的基本類型,流分為字節(jié)流和字符流兩大類。字節(jié)流類按照流的方向分為字節(jié)輸入流類和字節(jié)輸出流類,字符流類方向性分為字符輸入流類和字符輸出流類。以及文件操作類File,隨機存取文件類RandomAccessFile.
其中InputStream類是所有字節(jié)輸入流的根類,OutputStream類是所有字節(jié)輸出流的根類;Reader類是所有字符輸入流的根類,Writer類是所有字符輸出流的根類。
9.3操作系統(tǒng)中文件和目錄概念是怎么樣的?Java提供了哪些對文件和目錄操作的類?程序中對文件和目錄能夠進行哪些操作?如何操作?
答:文件是信息的一種組織形式,是存儲在外部存儲介質上的具有標識名的一組相關的信息集合。目錄是文件系統(tǒng)組織和管理文件的基本單位,保存它所管理的每個文件的基本屬性信息(稱為文件目錄項或文件控制塊)。
Java直接對文件的順序存取和隨機存取操作,提供了File類記載文件屬性信息,對文件讀/寫操作時以流的形式。RandomAccessFile類以隨機存取方式進行文件讀/寫操作。但在對文件操作過程中還需要使用文件過濾器接口和文件對話框類。在操作系統(tǒng)中,目錄也是以文件的形式保存的,稱為目錄文件。故一個File對象也可以表示一個目錄。
可以對文件進行讀、寫、刪除、創(chuàng)建等操作,對目錄可以讀取、創(chuàng)建、刪除等操作。應用程序通過調用操作系統(tǒng)提供的系統(tǒng)調用能夠對文件及目錄進行各種操作。
再打開、保存、復制文件時,需要讀/寫文件中的數(shù)據(jù)內容,這些操作由流實現(xiàn),不同類型的文件需要使用不同的流淚。
9.4流與文件操作有什么關系?實際應用中將流類與文件操作結合起來能夠實現(xiàn)哪些復雜問題?如何實現(xiàn)?
答:對文件的操作時通過流這個工具進行的。再打開、保存、復制文件時,需要讀/寫文件中的數(shù)據(jù)內容,這些操作由流實現(xiàn),不同類型的文件需要使用不同的流淚。
9.5什么是輸入/輸出?什么是標準輸入/輸出?Java怎樣實現(xiàn)標準輸入/輸出功能?
答:數(shù)據(jù)由外部設備流向內存,這個過程稱為輸入;數(shù)據(jù)有內存流向外部設備,這個過程稱為輸出。
在計算機系統(tǒng)中,標準輸入是從鍵盤等外部輸入設備中獲得數(shù)據(jù),標準輸出是向顯示器或打印機等外部輸出設備發(fā)送數(shù)據(jù)。
Java在java.lang.System類中聲明了3個常量in、out和err用于實現(xiàn)標準輸入/輸出
功能。
9.6除了標準輸入/輸出及文件操作之外,還有那些應用中需要使用流?
答:在面向對象的程序設計中,數(shù)據(jù)的傳輸和流動具有廣泛性,不僅可以在內存與外部設備之間傳輸,還可以從內存流向內存,甚至可以從一臺計算機通過網(wǎng)絡流向另一臺計算機,因此各種不同的數(shù)據(jù)源的傳輸都需要采取不同的流機制來實現(xiàn)。
9.7在“打開”、“保存”文件對話框中,設置“*.txt”等文件過濾器。答:略
9.8RandomAccessFile類和與File類有什么不同,進行讀寫操作時需要使用流嗎?
答:File類保存文件和目錄的各種屬性,在對文件的操作中,其中讀/寫文件的操作由字節(jié)流或字符流實現(xiàn),通常是以順序存取方式,如果要對文件進行隨機存取即對一個文件同時進行讀和寫操作時就是用RandomAccessFile類。它們在讀寫操作時都要用到流。
9.9能否將一個對象寫入一個隨機存取文件?答:不能
9.10Applet應用程序能否使用流與文件操作?為什么不能?答:不能。
9.11當創(chuàng)建文件流類或File類對象時,如果文件名為空,會怎樣?會拋出異常嗎?
答:NullPointerException