top
Loading...
利用JAVA向垃圾電子郵件宣戰
摘 要:計算機技術給我們的日常生活帶來了很多便利:來自生產線 的產品、高效的通信以及大量易于訪問的信息,然而它同時也帶來了垃圾電子郵件。幸運的是, 我們已經有辦法對付它。本文將對Java類庫的I/O包以及建立在其上的“流”模型進行深入的討 論,包括:它是如何工作的,Java1.0.2和Java1.1在I/O實現方面的差別,以及如何利用這些知 識建立一個垃圾電子郵件“過濾器”。

“足不出戶,也能至富”
“神奇的飲食,一周減肥20磅”
“熱情的XXX寶貝想見你”

有時,我們會收到很多不受歡迎的 電子郵件,這些郵件往往令人不快。那些還沒有受垃圾電子郵件之苦的幸運者也應該意識到這 是一個現實的問題。這里我們將介紹一種利用JAVA控制垃圾電子郵件的方法。

監視敵人

我們無法逃避垃圾電子郵件,只能 盡量減少它對我們生活的侵擾。最好,也是最有效的方法是阻止人們給我們發不受歡迎的電子 郵件。我們必須在看到垃圾電子郵件之前消除它,那么如何實現呢?

一種行之有效的方法是檢查電子郵件的內容,然后決定是否保留它。其實,我們在閱讀電子郵件時就是這樣做的:我們一個接一個字符、一行接一行地讀電子郵件,搜索我們認識地單詞,如果其中包括單詞“Java”,我們便保留它,如果包括“MakeMoneyFast”,我們便將它扔到垃圾桶里。能否編制一個計算機程序來幫助我們更有效地工作呢?

戰術評估

下面,我們討論Java類庫I/O包中 的類。Java類庫的輸入輸出類基于一種簡單但強大的模型:“流”(Streams)。

在“流”模型中,信 息從一點“流”到另一點,就象在河流或者管道中一樣。在“流”中的任何一點,觀察者看到信息一 點一點地順序流過。這種模型適合現實世界中很多類型的信息,比如來自計算機鍵盤的鍵 碼(Keycodes)、來自聲音文件的聲音數據、來自文本文件的一行接一行的文本等都是信息流。



圖1“流”中信息從一點傳到另一點

“流”中的一個重 要工具便是“過濾器”(Filters)。“過濾器”從“流”的“上游”獲取信息,用某種方式過濾或者處理 后,發送到“流”的“下游”。“流”模型功能強大的關鍵是可以用一些非常簡單的、獨立的“過濾器” 串成一個功能強大的復合“過濾器”。



圖2“過濾器”中斷處理信息流



圖3級聯“過濾器”

Java類庫將“流”分為兩類──輸 入和輸出,這種區分在理論上是不必要的,但是在實際應用中卻是有用的。輸入“流”的最初來源 是某一設備或者文件,它將數據從設備或文件輸入到程序中,輸入“流”在處理中一般是要過濾 的。輸出“流”的最終目標也是某一設備或者文件,它將數據從程序輸出到設備或文件中,輸入“ 流”在處理中一般也是要過濾的。

有兩個原因使我們將Java類庫中 的“流”類應用到垃圾電子郵件問題的解決方案中:

  • 可以很容易地將電子郵件看做是一個接一個字符、一行接一行進入到計算機的。
  • 當電子郵件進入計算機時,我們要一個接一個字符、一行接一行地檢查是否與我們指定的模板匹配。
作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗