文件與輸入輸出流

File類:java.io包中定義了一個File類來專門表示文件,并獲取文件的有關信息卖哎。File類可以用來獲取或設置文件及目錄的屬性鬼悠,但它不支持從文件讀取數(shù)據(jù)或往文件里面寫數(shù)據(jù)這些操作

流的概念:JAVA作為一門面向對象的語言。采用了面向對象的概念來解決了程序與眾多外部設備進行交互的問題亏娜。JAVA把與任何外部設備打交道的這一過程抽象為數(shù)據(jù)流來表示焕窝。數(shù)據(jù)流的兩端分別是數(shù)據(jù)源端和數(shù)據(jù)宿端。

數(shù)據(jù)流可以按兩種形式來進行分類:

按流內的數(shù)據(jù)格式分:字節(jié)流(以機器使用的字節(jié)格式來表示流內的數(shù)據(jù))和字符流(以人類易讀的格式來表示數(shù)據(jù)维贺,文本文件中表示的字符)

按流的方向:輸入流和輸出流

字節(jié)輸入輸出流:InputStream是字節(jié)輸入流的父類它掂,OutputStream是字節(jié)輸出流的父類。(其中的子類不一一說明溯泣,只是要記住FilterInputStream是用于對從其他輸入流中讀取的數(shù)據(jù)提供一些額外的功能虐秋,其子類有DataOutputStream、BufferedOutputStream,PrintStream)

InputStream類

read()方法被調用時垃沦,若當前的輸入流中并沒有立即可用的數(shù)據(jù)客给,那么這個調用操作會被阻塞,直到當前輸入流成功地完成數(shù)據(jù)的準備為止(通常敲一個回車鍵)

在InputStream中還有一個控制方法available()肢簿,該方法的作用在于告訴輸入流的使用者靶剑,在不產生阻塞的情況下,數(shù)據(jù)流中還有多少字節(jié)可供讀取池充。如果每次只讀取調用available()方法獲取到的字節(jié)數(shù)桩引,那么讀取操作肯定不會被阻塞。

FileInputStream類

文件輸入流主要用于對文件的操作收夸。當用字節(jié)輸入流從文件中讀入數(shù)據(jù)時坑匠,創(chuàng)建愛你的FileInputStream對象用來表示要輸入的文件流。在創(chuàng)建文件輸入流對象的時候咱圆,可以用文件名笛辟,或者File對象功氨,或者 FileDescription對象作為參數(shù)。

OutputStream類

write()方法三種類型的區(qū)別與InputStream類似手幢。這三個方法都沒有返回值捷凄,如果沒有發(fā)生異常,就可以認為數(shù)據(jù)成功寫出了围来。write()方法也是采用”阻塞式“寫方式跺涤。只有當所有數(shù)據(jù)成功寫出或者發(fā)生了異常,write方法才執(zhí)行接受监透,程序才可以執(zhí)行后面的代碼桶错。這里可以用多線程解決這里的阻塞式的問題。

FileOutputStream類

向一個文件寫數(shù)據(jù)時胀蛮,可創(chuàng)建一個FileOutputStream對象來表示要輸出的文件流院刁。FileOuputStream對象默認會以新建文件的方式開啟輸出流。如果指定的文件已經存在粪狼,則原文件的內容會被覆蓋退腥。如果想以附加的模式來寫入文件,則可以在構造方法后面加一個true再榄。

字符輸入輸出流

Reader類和Write類分別表示字符輸入流和字符輸出流的父類狡刘。他們都提供了對16位Unicode字符的處理能力,因此常用于文本信息的讀寫困鸥。在Reader和Writer類中嗅蔬,分別定義了用于讀數(shù)據(jù)的reader()方法和用于寫數(shù)據(jù)的write()方法。他們的形式和功能都和前面字節(jié)流的相似疾就。

FileReader類和FileWriter類

InputStreamReader和OutputStreamWriter類都是用于字符和字節(jié)的轉換的澜术。

DataInputStream類是專門讀取使用DataOutputStream類輸出的數(shù)據(jù)。通過DataInputStream和DataOutputStram類虐译,可按數(shù)據(jù)的類型為單位對文件進行讀寫瘪板。而不是以字節(jié)或字符為單位讀寫吴趴。

帶緩存的輸入流和輸出流

BufferedInoutStream與BufferdOutputStream類分別是FilterInputStream和FilterOutputStream類的子類漆诽。他們都是為一個基本的字節(jié)輸入或輸出流添加額外的一些功能。

構建這兩個類時锣枝,都需要給定一個輸入輸出字節(jié)流

BufferedReader與BufferdOutWriter類分別是Reader和Writer類的子類厢拭。他們都是為一個基本的字節(jié)輸入或輸出流添加額外的一些功能。

構建這兩個類時撇叁,都需要給定一個輸入輸出字符流

標準輸入輸出流的重定向

標準輸入流:System.in這個流對應于鍵盤輸入

標準輸出流:System.out這個流對應與屏幕輸出

標準錯誤流:System.err這個流對應于屏幕輸出

標準輸入指的是從鍵盤輸入供鸠,而標準輸出指的是咋控制器顯示出來。我們常用System.in和System.out對象來實現(xiàn)標準的輸入和輸出陨闹。實際上楞捂,標準輸入和輸出流可以和其他文件相關聯(lián)薄坏,實現(xiàn)重定向。

隨機訪問

java.io包中的RandomAccessFile類提供了對文件的讀寫功能寨闹,與普通的輸入輸出流不一樣的是胶坠,RandomAccessFile可以任意地訪問文件的任何位置。這就是隨機訪問的意義所在繁堡。這里也是字節(jié)流

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末沈善,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子椭蹄,更是在濱河造成了極大的恐慌闻牡,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绳矩,死亡現(xiàn)場離奇詭異罩润,居然都是意外死亡,警方通過查閱死者的電腦和手機翼馆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門哨啃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人写妥,你說我怎么就攤上這事拳球。” “怎么了珍特?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵祝峻,是天一觀的道長。 經常有香客問我扎筒,道長莱找,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任嗜桌,我火速辦了婚禮奥溺,結果婚禮上,老公的妹妹穿的比我還像新娘骨宠。我一直安慰自己浮定,他們只是感情好,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布层亿。 她就那樣靜靜地躺著桦卒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪匿又。 梳的紋絲不亂的頭發(fā)上方灾,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機與錄音碌更,去河邊找鬼裕偿。 笑死洞慎,一個胖子當著我的面吹牛,可吹牛的內容都是我干的嘿棘。 我是一名探鬼主播拢蛋,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蔫巩!你這毒婦竟也來了谆棱?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤圆仔,失蹤者是張志新(化名)和其女友劉穎垃瞧,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坪郭,經...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡个从,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了歪沃。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嗦锐。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖沪曙,靈堂內的尸體忽然破棺而出奕污,到底是詐尸還是另有隱情,我是刑警寧澤液走,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布碳默,位于F島的核電站,受9級特大地震影響缘眶,放射性物質發(fā)生泄漏嘱根。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一巷懈、第九天 我趴在偏房一處隱蔽的房頂上張望该抒。 院中可真熱鬧,春花似錦顶燕、人聲如沸凑保。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽愉适。三九已至,卻和暖如春癣漆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背剂买。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工惠爽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留癌蓖,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓婚肆,卻偏偏與公主長得像租副,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子较性,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內容