輸入輸出
在所有的本系列文章中,在編寫Ruby代碼時都使用了大量的Ruby標準輸出方法。其中,最為常用的是print和puts方法,有關其使用細節不再贅述。
所有這些和其它處理輸入和輸出的方法都定義于Kernel模塊中。這個Kernel模塊又被包含在Object類中。因此,Kernel的方法出現在每一個對象中。在輸出方面,Kernel定義了print,printf,putc和IO類和兩個子類(File和BasicSocket)-它們允許讀寫文件和套接字。BasicSocket是套接字庫的一部分并且將在以后討論它。包含了FileTest模塊的File類,提供了許多方法來操作系統文件和目錄。從Kernel中使用的用于讀寫到標準輸入/輸出機制的方法被進一步重用于File實例中的讀寫操作。下面是一個代碼示例-它把一些名字寫入一個新建的文件中,然后再把這些名字讀回到一個數組中。
customers=%w[Jim?Kevin?Davin?Andrew] outFile?=?File.new("c:\\examples\\test\\customers.txt",?"w") customers.each{|customer|?outFile.puts(customer)} outFile.close inFile=?File.new("c:\\examples\\customers.txt",?"r") readCustomers=inFile.readlines readCustomers.each{|customer|?puts?customer} inFile.close |
標準庫
Ruby除了提供大量內置的類和模塊外,它還提供了一定數目的標準庫。這些庫不是自動地成為你可以利用的Ruby類,模塊,方法的一部分。你必須先在你的文件的頂部使用require(或load)關鍵字來使用庫中的類或模塊。在前一節中,我曾提到一個庫-套接字庫,它包含了大量的Ruby類(包括BasicSocket),以便于訪問網絡服務。但是在Ruby下載中一同提供了一整套其它的庫。你可以查看一下你的Ruby下載中的lib目錄,這個目錄下應該存在大量的你的Ruby程序需要使用的庫。
有關這些庫的不好的一點是,沒有大量的有關于這些類的參考文檔。你可以在網站http://www.ruby-doc.org/stdlib/上找到一系列標準庫及其包含類和模塊的文件。即使是這些文檔也指出:
"你需要明白,在表格中粗體的庫具有良好的文檔,而斜體的庫沒有文檔。"
這就是Ruby的現狀。你可能想說,Ruby是一個不可思議地豐富而有力的語言并且內置了許多構建我們的應用程序需要的功能,但是文檔仍然有點不足。還好,現在已經有不少的人在努力改進Ruby的文檔和支持。現在有不少的Ruby論壇已經倔起,并且隨著每一個新版本的發行,文檔都將有一定的改進-當然,這也是最近它備受關注的結果。然而,幫助文檔仍然會成為這種語言挫敗人心的一個因素。