I/O流
I/O流表示輸入源或輸出目標(biāo),流可以表示許多不同類(lèi)型的源和目標(biāo),包括磁盤(pán)文件、設(shè)備、其他程序和內(nèi)存數(shù)組。
流支持許多不同類(lèi)型的數(shù)據(jù),包括簡(jiǎn)單字節(jié)、原始數(shù)據(jù)類(lèi)型、本地化字符和對(duì)象,有些流只是傳遞數(shù)據(jù),其他人以有用的方式操縱和轉(zhuǎn)換數(shù)據(jù)。
無(wú)論它們?nèi)绾卧趦?nèi)部工作,所有流都為使用它們的程序提供相同的簡(jiǎn)單模型:流是一系列數(shù)據(jù),程序使用輸入流從源讀取數(shù)據(jù),一次一個(gè)條目:
程序使用輸出流將數(shù)據(jù)寫(xiě)入目標(biāo),一次一個(gè)條目:
在本課程中,我們將看到可以處理各種數(shù)據(jù)的流,從原始值到高級(jí)對(duì)象。
上圖所示的數(shù)據(jù)源和數(shù)據(jù)目的地可以是保存、生成或使用數(shù)據(jù)的任何內(nèi)容,顯然這包括磁盤(pán)文件,但源或目標(biāo)也可以是另一個(gè)程序、外圍設(shè)備,網(wǎng)絡(luò)socket或數(shù)組。
在下一節(jié)中,我們將使用最基本的流(字節(jié)流)來(lái)演示流I/O的常見(jiàn)操作,對(duì)于示例輸入,我們將使用示例文件xanadu.txt,其中包含以下內(nèi)容:
In Xanadu did Kubla Khan A stately pleasure-dome decree: Where Alph, the sacred river, ran Through caverns measureless to man Down to a sunless sea.下一篇:字節(jié)流
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/72946.html
字符流 Java平臺(tái)使用Unicode約定存儲(chǔ)字符值,字符流I/O自動(dòng)將此內(nèi)部格式與本地字符集進(jìn)行轉(zhuǎn)換,在Western語(yǔ)言環(huán)境中,本地字符集通常是ASCII的8位超集。 對(duì)于大多數(shù)應(yīng)用程序,具有字符流的I/O并不比具有字節(jié)流的I/O復(fù)雜,使用流類(lèi)完成的輸入和輸出會(huì)自動(dòng)轉(zhuǎn)換為本地字符集和從本地字符集轉(zhuǎn)換,使用字符流代替字節(jié)流的程序會(huì)自動(dòng)適應(yīng)本地字符集并為國(guó)際化做了準(zhǔn)備 — 所有這些都無(wú)需程序員的額...
命令行I/O 程序通常從命令行運(yùn)行,并在命令行環(huán)境中與用戶交互,Java平臺(tái)以兩種方式支持這種交互:通過(guò)標(biāo)準(zhǔn)流和控制臺(tái)。 標(biāo)準(zhǔn)流 標(biāo)準(zhǔn)流是許多操作系統(tǒng)的一個(gè)特性,默認(rèn)情況下,它們從鍵盤(pán)讀取輸入并將輸出寫(xiě)入顯示器,它們還支持文件和程序之間的I/O,但該功能由命令行解釋器控制,而不是程序。 Java平臺(tái)支持三種標(biāo)準(zhǔn)流:標(biāo)準(zhǔn)輸入,可通過(guò)System.in訪問(wèn);標(biāo)準(zhǔn)輸出,可通過(guò)System.out訪問(wèn);和...
字節(jié)流 程序使用字節(jié)流來(lái)執(zhí)行8位字節(jié)的輸入和輸出,所有的字節(jié)流類(lèi)都是從InputStream和OutputStream派生出來(lái)的。 有許多字節(jié)流類(lèi),為了演示字節(jié)流的工作原理,我們將重點(diǎn)關(guān)注文件I/O字節(jié)流,F(xiàn)ileInputStream和FileOutputStream,其他類(lèi)型的字節(jié)流以大致相同的方式使用,它們的不同之處主要在于它們的構(gòu)造方式。 使用字節(jié)流 我們將通過(guò)檢查名為CopyBytes的...
Java? 教程 Java教程是為JDK 8編寫(xiě)的,本頁(yè)面中描述的示例和實(shí)踐沒(méi)有利用在后續(xù)版本中引入的改進(jìn)。 Java教程是希望使用Java編程語(yǔ)言創(chuàng)建應(yīng)用程序的程序員的實(shí)用指南,其中包括數(shù)百個(gè)完整的工作示例和數(shù)十個(gè)課程,相關(guān)課程組被組織成教程。 覆蓋基礎(chǔ)知識(shí)的路徑 這些教程以書(shū)籍的形式提供,如Java教程,第六版,前往Amazon.com購(gòu)買(mǎi)。 入門(mén) 介紹Java技術(shù)和安裝Java開(kāi)發(fā)軟件并使用...
緩沖流 到目前為止,我們看到的大多數(shù)示例都使用無(wú)緩沖的I/O,這意味著每個(gè)讀取或?qū)懭胝?qǐng)求都由底層操作系統(tǒng)直接處理,這可以使程序效率低得多,因?yàn)槊總€(gè)這樣的請(qǐng)求通常觸發(fā)磁盤(pán)訪問(wèn)、網(wǎng)絡(luò)活動(dòng)或一些相對(duì)昂貴的其他操作。 為了減少這種開(kāi)銷(xiāo),Java平臺(tái)實(shí)現(xiàn)了緩沖的I/O流,緩沖輸入流從稱(chēng)為緩沖區(qū)的內(nèi)存區(qū)讀取數(shù)據(jù),僅當(dāng)緩沖區(qū)為空時(shí)才調(diào)用原生輸入API,類(lèi)似地,緩沖輸出流將數(shù)據(jù)寫(xiě)入緩沖區(qū),并且僅在緩沖區(qū)已滿時(shí)才調(diào)...
閱讀 3705·2021-08-10 09:42
閱讀 597·2019-08-30 15:55
閱讀 899·2019-08-30 15:54
閱讀 3119·2019-08-30 13:45
閱讀 566·2019-08-29 16:23
閱讀 1999·2019-08-29 16:23
閱讀 993·2019-08-29 15:18
閱讀 2269·2019-08-29 12:57