資源描述:
《《java程序設(shè)計(jì)》輔導(dǎo)資料14》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、大連理工大學(xué)網(wǎng)絡(luò)教育學(xué)院Java程序設(shè)計(jì)輔導(dǎo)資料十四主題:第九章文件和流的概念以及字節(jié)輸入/輸出流類(課件)學(xué)習(xí)時間:2014年12月29日—2015年1月4日內(nèi)容:我們這周主要學(xué)習(xí)《Java程序設(shè)計(jì)》這門課程的第9章前兩節(jié)關(guān)于文件和流的概念以及字節(jié)輸入/輸出流類的相關(guān)內(nèi)容。希望通過下面的內(nèi)容能使同學(xué)們對此方面的知識有進(jìn)一步的了解。知識要點(diǎn):1、文件和文件系統(tǒng)的概念2、文件的分類3、文件的結(jié)構(gòu)4、流的概念和分類5、文件流6、字符輸入/輸出流類7、字節(jié)輸入/輸出流類重點(diǎn)與難點(diǎn):重點(diǎn):文件和流的概念、分類難點(diǎn):字節(jié)輸入/輸出流類、字符輸入/輸出流類一、文件和文件系統(tǒng)計(jì)算機(jī)文件屬于文件的一種,
2、與普通文件載體不同,計(jì)算機(jī)文件是以計(jì)算機(jī)硬盤為載體存儲在計(jì)算機(jī)上的信息集合。文件可以是文本文檔、圖片、程序等等。文件通常具有三個字母的文件擴(kuò)展名,用于指示文件類型(例如,圖片文件常常以JPEG格式保存并且文件擴(kuò)展名為.jpg)。1、系統(tǒng)文件的定義文件是具有符號名的,在邏輯上具有完整意義的一組相關(guān)信息項(xiàng)的有序序列。信息項(xiàng)是構(gòu)成文件內(nèi)容的基本單位。讀指針用來記錄文件當(dāng)前文件之前的讀取位置,它指向下一個將要讀取的信息項(xiàng)。寫指針用來記錄文件當(dāng)前的寫入位置,下一個將要寫入的信息項(xiàng)被寫到該處。2、文件的分類按性質(zhì)和用途分類:系統(tǒng)文件。用戶文件。按文件的邏輯結(jié)構(gòu)分為:流式文件。記錄式文件。按信息的保存
3、期限分類:臨時文件。永久性文件。檔案文件。按文件的物理結(jié)構(gòu)分類:順序文件。鏈接文件。索引文件。HASH文件。索引順序文件。按文件的存取方式:順序存取文件。隨機(jī)存取文件。UNIX系統(tǒng)中文件分類:普通文件。目錄文件。特殊文件。3、文件的存取方式文件的存取方式是由文件的性質(zhì)和用戶使用文件的情況決定。1、順序存取。2、隨機(jī)存取。第6頁共6頁大連理工大學(xué)網(wǎng)絡(luò)教育學(xué)院磁帶是順序存取。磁盤是隨機(jī)存取。4、文件的物理結(jié)構(gòu)1順序結(jié)構(gòu)。2鏈接結(jié)構(gòu)。3索引結(jié)構(gòu)。如果是三級索引,文件長度最大為:256*256*256+256*256+256+10文件系統(tǒng)最大的一個特點(diǎn)是“按名存取”文件目錄是文件控制塊的有序集合
4、。5、文件系統(tǒng)文件系統(tǒng)是操作系統(tǒng)用于明確磁盤或分區(qū)上的文件的方法和數(shù)據(jù)結(jié)構(gòu);即在磁盤上組織文件的方法。也指用于存儲文件的磁盤或分區(qū),或文件系統(tǒng)種類。因此,可以說"我有2個文件系統(tǒng)"意思是他有2個分區(qū),一個存文件,或他用"擴(kuò)展文件系統(tǒng)",意思是文件系統(tǒng)的種類。磁盤或分區(qū)和它所包括的文件系統(tǒng)的不同是很重要的。少數(shù)程序(包括最有理由的產(chǎn)生文件系統(tǒng)的程序)直接對磁盤或分區(qū)的原始扇區(qū)進(jìn)行操作;這可能破壞一個存在的文件系統(tǒng)。大部分程序基于文件系統(tǒng)進(jìn)行操作,在不同種文件系統(tǒng)上不能工作。一個分區(qū)或磁盤能作為文件系統(tǒng)使用前,需要初始化,并將記錄數(shù)據(jù)結(jié)構(gòu)寫到磁盤上。這個過程就叫建立文件系統(tǒng)。二、流1、流的概
5、念在計(jì)算機(jī)編程中,流就是一個類的對象,很多文件的輸入輸出操作都以類的成員函數(shù)的方式來提供。計(jì)算機(jī)中的流其實(shí)是一種信息的轉(zhuǎn)換。它是一種有序流,因此相對于某一對象,通常我們把對象接收外界的信息輸入(Input)稱為輸入流,相應(yīng)地從對象向外輸出(Output)信息為輸出流,合稱為輸入/輸出流(I/OStreams)。對象間進(jìn)行信息或者數(shù)據(jù)的交換時總是先將對象或數(shù)據(jù)轉(zhuǎn)換為某種形式的流,再通過流的傳輸,到達(dá)目的對象后再將流轉(zhuǎn)換為對象數(shù)據(jù)。所以,可以把流看作是一種數(shù)據(jù)的載體,通過它可以實(shí)現(xiàn)數(shù)據(jù)交換和傳輸。流的分類輸入流:在java中,可從中讀出一系列字節(jié)的對象稱為“輸入流”。輸出流:能向其中寫入一系
6、列字節(jié)的對象稱為“輸出流”。我們將向輸出流寫入數(shù)據(jù)信息的叫數(shù)據(jù)源;我們將從輸入流讀取數(shù)據(jù)信息的叫目的地。數(shù)據(jù)源和目的地可以是(而且經(jīng)常)文件,但它們也可能是一個網(wǎng)絡(luò)連接(),甚至一個內(nèi)存塊。所有數(shù)據(jù)最終都要保存為一系列字節(jié)。java中以抽象類InputStream和OutputStreaml來實(shí)現(xiàn)單字節(jié)的字符。以抽象類Reader和Writer(它們的子類)來實(shí)現(xiàn)來專門處理采用Unicode(每個字符都使用了雙字節(jié))格式保存的信息。流的抽象類分析InputStream類InputStream類提供了一個抽象方法:publicabstractintread()throwsIOExcepti
7、on第6頁共6頁大連理工大學(xué)網(wǎng)絡(luò)教育學(xué)院方法說明:返回可讀取一個字節(jié),并將它返回;假如它遇到輸入源的結(jié)尾,就會返回一個-1。通常覆蓋這個方法,以便提供更有用的功能。例如:在FileInputStream類中,這個方法會從一個文件中讀入一個字節(jié)。System.in是InputStream的一個字類預(yù)先定義好的對象,允許我們從鍵盤讀取信息。InputStream類也提供了非抽象方法,用于讀取一個字節(jié)數(shù)組,或者跳過一定數(shù)量的字節(jié)。這些方法