Java中,輸入與輸出將會以串流(stream)的方式來實作,舉凡檔案、網路、資料庫輸入輸出等,都是以這個概念呈現。
Java IO(input/output)流是既可以從中讀取,也可以寫入到其中的數據流。正如這個系列教程之前提到過的,流通常會與數據源、數據流向目的地相關聯,比如文件、網絡等等。
流和數組不一樣,不能通過索引讀寫數據。在流中,你也不能像數組那樣前後移動讀取數據。
讀取控制台輸入
Java的控制台輸入由System.in完成。
Scanner scn = new Scanner(System.in);
為了獲得一個綁定到控制台的字符流,你可以把System.in包裝在一個BufferedReader 對像中來創建一個字符流。
JDK 5後的版本我們也可以使用Java Scanner類來獲取控制台的輸入。
控制台輸出,在此前已經介紹過,控制台的輸出由print( )和println( )完成。 這些方法都由類PrintStream 定義,我們常用的 System.out 便是該類對象的一個引用。
PrintStream 繼承了OutputStream類,並且實現了方法write()。 這樣,write()也可以用來往控制台寫操作。
讀寫文件
如前所述,一個流被定義為一個數據序列。 輸入流用於從源讀取數據,輸出流用於向目標寫數據。
FileInputStream
輸入串流用於從文件讀取數據,它的對象可以用關鍵字new來創建。
有多種構造方法可用來創建對象。
可以使用字符串類型的文件名來創建一個輸入流對象來讀取文件:
InputStream f = new FileInputStream("C:/java/hello");
FileOutputStream
該類用來創建一個文件並向文件中寫數據。
如果該流在打開文件進行輸出前,目標文件不存在,那麼輸出串流將會創建該文件。
有兩個構造方法可以用來創建FileOutputStream 對象。
使用字符串類型的文件名來創建一個輸出流對象:
OutputStream f = new FileOutputStream("C:/java/hello");
讀寫文件
另一種方法是透過 FileReader 與 BufferedReader 來進行檔案讀取。
InputStream用來讀取二進位數(bytecode),而 Reader用來讀取文本數據,即 Unicode字符。
以上就是輸入與輸出的內容,明天見囉
Hi, I am Grant.
個人部落格 - https://grantliblog.wordpress.com/
個人網站 - https://grantli-website.netlify.app/#/mainpage
我的寫作專題 - https://vocus.cc/user/5af2e9b5fd89780001822db4#