Java 語(yǔ)法學(xué)習(xí)筆記(三)


[TOC]

參考教程

菜鳥(niǎo)教程 --- Java 教程

IBM --- Java 編程簡(jiǎn)介,第 2 部分

C語(yǔ)言中文網(wǎng) --- Java異常處理

Java 異常

異常的分類(lèi)

Throwable 類(lèi)是所有異常和錯(cuò)誤的超類(lèi)狡恬,下面有 Error 和 Exception 兩個(gè)子類(lèi)分別表示錯(cuò)誤和異常

  1. 檢查性異常

    程序員無(wú)法預(yù)見(jiàn)的異常

    從程序語(yǔ)法角度講是必須進(jìn)行處理的異常措伐,如果不處理撒会,程序就不能編譯通過(guò)

  2. 運(yùn)行時(shí)異常

    程序員可預(yù)見(jiàn)的異常,編譯時(shí)可忽略

    屬于不檢查異常,程序中可以選擇捕獲處理挠轴,也可以不處理

  3. 錯(cuò)誤(Error)

    脫離程序員控制的錯(cuò)誤

    Error 類(lèi)型通常是災(zāi)難性的致命錯(cuò)誤,不是程序可以控制的

異常的產(chǎn)生和處理

Java 通過(guò)面向?qū)ο蟮姆椒▉?lái)處理異常耳幢。在一個(gè)方法的運(yùn)行過(guò)程中岸晦,如果發(fā)生了異常,則這個(gè)方法會(huì)產(chǎn)生代表該異常的一個(gè)對(duì)象睛藻,并把它交給運(yùn)行時(shí)的系統(tǒng)启上,運(yùn)行時(shí)系統(tǒng)尋找相應(yīng)的代碼來(lái)處理這一異常。
把生成異常對(duì)象店印,并把它提交給運(yùn)行時(shí)系統(tǒng)的過(guò)程稱(chēng)為拋出(throw)異常冈在。運(yùn)行時(shí)系統(tǒng)在方法的調(diào)用棧中查找,直到找到能夠處理該類(lèi)型異常的對(duì)象按摘,這一個(gè)過(guò)程稱(chēng)為捕獲(catch)異常包券。

try-catch 語(yǔ)句用于捕獲并處理異常,finally 語(yǔ)句用于在任何情況下(除特殊情況外)都必須執(zhí)行的代碼炫贤,throw 語(yǔ)句用于拋出異常溅固,throws 語(yǔ)句用于聲明可能會(huì)出現(xiàn)的異常

如果代碼在 try 內(nèi)部執(zhí)行一條 System.exit() 語(yǔ)句,則應(yīng)用程序?qū)⒔K止而不會(huì)執(zhí)行 finally

異常的使用原則

異常處理不應(yīng)用來(lái)控制程序的正常流程照激,其主要作用是捕獲程序在運(yùn)行時(shí)發(fā)生的異常并進(jìn)行相應(yīng)處理发魄。

  1. 在當(dāng)前方法聲明中使用 try catch 語(yǔ)句捕獲異常
  2. 一個(gè)方法被覆蓋時(shí),覆蓋它的方法必須拋出相同的異沉├或異常的子類(lèi)
  3. 如果父類(lèi)拋出多個(gè)異常励幼,則覆蓋方法必須拋出那些異常的一個(gè)子集,而不能拋出新異常

Java 自定義異常

  1. 所有異常都必須是 Throwable 的子類(lèi)口柳、

    如果希望寫(xiě)一個(gè)檢查性異常類(lèi)苹粟,則需要繼承 Exception 類(lèi)

    如果想寫(xiě)一個(gè)運(yùn)行時(shí)異常類(lèi),那么需要繼承 RuntimeException 類(lèi)

  2. 自定義異常類(lèi)一般包含兩個(gè)構(gòu)造方法:一個(gè)是無(wú)參的默認(rèn)構(gòu)造方法跃闹,另一個(gè)構(gòu)造方法以字符串的形式接收一個(gè)定制的異常消息嵌削,并將該消息傳遞給超類(lèi)的構(gòu)造方法

Java 輸入輸出流

分類(lèi)

  • 流的方向:輸入流和輸出流
  • 數(shù)據(jù)單位:字節(jié)流和字符流
  • 功能:節(jié)點(diǎn)流和處理流

Java輸入輸出流

  • Java 中所有輸入流都是 InputStream 抽象類(lèi)(字節(jié)輸入流)和 Reader 抽象類(lèi)(字符輸入流)的子類(lèi)
  • Java 中所有輸出流類(lèi)都是 OutputStream 抽象類(lèi)(字節(jié)輸出流)和 Writer 抽象類(lèi)(字符輸出流)的子類(lèi)

Java 系統(tǒng)流

每個(gè) Java 程序運(yùn)行時(shí)都帶有一個(gè)系統(tǒng)流毛好,系統(tǒng)流對(duì)應(yīng)的類(lèi)為 java.lang.System。Sytem 類(lèi)封裝了 Java 程序運(yùn)行時(shí)的 3 個(gè)系統(tǒng)流苛秕,分別通過(guò) in肌访、out 和 err 變量來(lái)引用。

File 類(lèi)

  • Java 中的 File 類(lèi)是文件和目錄路徑名的抽象形式

  • Java File 類(lèi)是 java.io 包中唯一代表磁盤(pán)文件本身的對(duì)象艇劫。File 類(lèi)表示處理文件和文件系統(tǒng)的相關(guān)信息吼驶。File 類(lèi)不具有從文件讀取信息和向文件寫(xiě)入信息的功能,它僅描述文件本身的屬性店煞。

    File 類(lèi)實(shí)現(xiàn)了文件/目錄的查看蟹演、創(chuàng)建、刪除等方法

動(dòng)態(tài)讀寫(xiě)文件內(nèi)容

  • 動(dòng)態(tài)讀取需要用到 Java 中的 RandomAccessFile 類(lèi)顷蟀,該類(lèi)中有一個(gè)文件指針用于標(biāo)識(shí)當(dāng)前流的讀寫(xiě)位置酒请,這個(gè)指針可以向前或者向后移動(dòng)。
  • RandomAccessFile 類(lèi)提供了讀寫(xiě)數(shù)據(jù)的一些方法

字節(jié)流的讀寫(xiě)

字節(jié)輸入流

InputStream 類(lèi)及其子類(lèi)的對(duì)象

  • ByteArrayInputStream: 字節(jié)數(shù)組輸入流
  • FileInputStream : 文件輸入流

字節(jié)輸出流

OutputStream 類(lèi)及其子類(lèi)的對(duì)象

  • ByteArrayOutputStream: 字節(jié)數(shù)組輸出流
  • FileOutputStream : 文件輸出流

字符流的讀寫(xiě)

字符輸入流

Reader 類(lèi)及其子類(lèi)的對(duì)象

  • FileReader : 字符文件輸入流
  • BufferedReader : 字符緩沖區(qū)輸入流

字符輸出流

Writer 類(lèi)及其子類(lèi)的對(duì)象

  • FileWriter : 字符文件輸出流
  • BufferedWriter : 字符緩沖區(qū)輸出流

總結(jié) --- 思維導(dǎo)圖

異常和輸入輸出.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鸣个,一起剝皮案震驚了整個(gè)濱河市羞反,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌毛萌,老刑警劉巖苟弛,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件喝滞,死亡現(xiàn)場(chǎng)離奇詭異阁将,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)右遭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)做盅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人窘哈,你說(shuō)我怎么就攤上這事吹榴。” “怎么了滚婉?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵图筹,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我让腹,道長(zhǎng)远剩,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任骇窍,我火速辦了婚禮瓜晤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘腹纳。我一直安慰自己痢掠,他們只是感情好驱犹,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著足画,像睡著了一般雄驹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上淹辞,一...
    開(kāi)封第一講書(shū)人閱讀 52,736評(píng)論 1 312
  • 那天荠医,我揣著相機(jī)與錄音,去河邊找鬼桑涎。 笑死彬向,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的攻冷。 我是一名探鬼主播娃胆,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼等曼!你這毒婦竟也來(lái)了里烦?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤禁谦,失蹤者是張志新(化名)和其女友劉穎胁黑,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體州泊,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡丧蘸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了遥皂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片力喷。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖演训,靈堂內(nèi)的尸體忽然破棺而出弟孟,到底是詐尸還是另有隱情,我是刑警寧澤样悟,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布拂募,位于F島的核電站,受9級(jí)特大地震影響窟她,放射性物質(zhì)發(fā)生泄漏陈症。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一礁苗、第九天 我趴在偏房一處隱蔽的房頂上張望爬凑。 院中可真熱鬧,春花似錦试伙、人聲如沸嘁信。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)潘靖。三九已至穿剖,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間卦溢,已是汗流浹背糊余。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留单寂,地道東北人贬芥。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像宣决,于是被迫代替她去往敵國(guó)和親蘸劈。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容