Java 方法、 流(Stream)、文件(File)和IO 总结
這里只總結幾個要點。
1. 方法的命名規則
1.方法的名字的第一個單詞應以小寫字母作為開頭,后面的單詞則用大寫字母開頭寫,不使用連接符。例如:addPerson。
2.下劃線可能出現在 JUnit 測試方法名稱中用以分隔名稱的邏輯組件。一個典型的模式是:test<MethodUnderTest>_<state>,例如 testPop_emptyStack。
2. 方法調用
Java 支持兩種調用方法的方式,根據方法是否返回值來選擇。
當程序調用一個方法時,程序的控制權交給了被調用的方法。當被調用方法的返回語句執行或者到達方法體閉括號時候交還控制權給程序。
當方法返回一個值的時候,方法調用通常被當做一個值。
注意:
main 方法是被 JVM 調用的,除此之外,main 方法和其它方法沒什么區別。
main 方法的頭部是不變的,public static void main(String[] args),帶修飾符 public 和 static,返回 void 類型值,方法名字是 main,此外帶個一個 String[] 類型參數。String[] 表明參數是字符串數組。
3. 方法的重載
就是說一個類的兩個方法擁有相同的名字,但是有不同的參數列表。
Java編譯器根據方法簽名判斷哪個方法應該被調用。
方法重載可以讓程序更清晰易讀。執行密切相關任務的方法應該使用相同的名字。
重載的方法必須擁有不同的參數列表。你不能僅僅依據修飾符或者返回類型的不同來重載方法。
而方法名是方法的實際名稱。方法名和參數表共同構成方法簽名。
4. 命令行參數的使用
有時候你希望運行一個程序時候再傳遞給它消息。這要靠傳遞命令行參數給main()函數實現。
命令行參數是在執行程序時候緊跟在程序名字后面的信息。
如下所示,運行這個程序:
$ javac CommandLine.java //編譯 $ java CommandLine this is a command line 200 -100 // 運行 args[0]: this args[1]: is args[2]: a args[3]: command args[4]: line args[5]: 200 args[6]: -100在這里補充下:JDK和JRE的區別?
JRE(Java Runtime Enviroment)是Java的運行環境。面向Java程序的使用者,而不是開發者。如果你僅下載并安裝了JRE,那么你的系統只能運行Java程序。JRE是運行Java程序所必須環境的集合,包含JVM標準實現及 Java核心類庫。它包括Java虛擬機、Java平臺核心類和支持文件。它不包含開發工具(編譯器、調試器等)。
JDK(Java Development Kit)又稱J2SDK(Java2 Software Development Kit),是Java開發工具包,它提供了Java的開發環境(提供了編譯器javac等工具,用于將java文件編譯為class文件)和運行環境(提 供了JVM和Runtime輔助包,用于解析class文件使其得到運行)。如果你下載并安裝了JDK,那么你不僅可以開發Java程序,也同時擁有了運行Java程序的平臺。JDK是整個Java的核心,包括了Java運行環境(JRE),一堆Java工具tools.jar和Java標準類庫 (rt.jar)。
5. 可變參數
JDK 1.5 開始,Java支持傳遞同類型的可變參數給一個方法。
方法的可變參數的聲明如下所示:
**在方法聲明中,在指定參數類型后加一個省略號(…) 。
一個方法中只能指定一個可變參數,它必須是方法的最后一個參數。任何普通的參數必須在它之前聲明。**
以上實例編譯運行結果如下:
The max value is 56.5 The max value is 3.06. finalize() 方法
Java 允許定義這樣的方法,它在對象被垃圾收集器析構(回收)之前調用,這個方法叫做 finalize( ),它用來清除回收對象。
例如,你可以使用 finalize() 來確保一個對象打開的文件被關閉了。
在 finalize() 方法里,你必須指定在對象銷毀時候要執行的操作。
finalize() 一般格式是:
關鍵字 protected 是一個限定符,它確保 finalize() 方法不會被該類以外的代碼調用。
當然,Java 的內存回收可以由 JVM 來自動完成。如果你手動使用,則可以使用上面的方法。
7. Java 流(Stream)、文件(File)和IO
Java.io 包幾乎包含了所有操作輸入、輸出需要的類。所有這些流類代表了輸入源和輸出目標。
Java.io 包中的流支持很多種格式,比如:基本類型、對象、本地化字符集等等。
一個流可以理解為一個數據的序列。輸入流表示從一個源讀取數據,輸出流表示向一個目標寫數據。
7.1 讀取控制臺輸入
Java 的控制臺輸入由 System.in 完成。
為了獲得一個綁定到控制臺的字符流,你可以把 System.in 包裝在一個 BufferedReader 對象中來創建一個字符流。
下面是創建 BufferedReader 的基本語法:
BufferedReader 對象創建后,我們便可以使用 read() 方法從控制臺讀取一個字符,或者用 readLine() 方法讀取一個字符串。
- 從 BufferedReader 對象讀取一個字符要使用 read() 方法,它的語法如下:
每次調用 read() 方法,它從輸入流讀取一個字符并把該字符作為整數值返回。 當流結束的時候返回 -1。該方法拋出 IOException。
- 從控制臺讀取字符串
從標準輸入讀取一個字符串需要使用 BufferedReader 的 readLine() 方法。
它的一般格式是:
下面的程序讀取和顯示字符行直到你輸入了單詞”end”。
7.2 控制臺輸出
在此前已經介紹過,控制臺的輸出由 print( ) 和 println() 完成。這些方法都由類 PrintStream 定義,System.out 是該類對象的一個引用。
PrintStream 繼承了 OutputStream類,并且實現了方法 write()。這樣,write() 也可以用來往控制臺寫操作。
PrintStream 定義 write() 的最簡單格式如下所示:
7.3 讀寫文件
如前所述,一個流被定義為一個數據序列。輸入流用于從源讀取數據,輸出流用于向目標寫數據。
下面將要討論的兩個重要的流是 FileInputStream 和 FileOutputStream:
- FileInputStream
該流用于從文件讀取數據,它的對象可以用關鍵字 new 來創建。
有多種構造方法可用來創建對象。
可以使用字符串類型的文件名來創建一個輸入流對象來讀取文件:
也可以使用一個文件對象來創建一個輸入流對象來讀取文件。我們首先得使用 File() 方法來創建一個文件對象:
File f = new File("C:/java/hello"); InputStream out = new FileInputStream(f);- FileOutputStream
該類用來創建一個文件并向文件中寫數據。
如果該流在打開文件進行輸出前,目標文件不存在,那么該流會創建該文件。
有兩個構造方法可以用來創建 FileOutputStream 對象。
使用字符串類型的文件名來創建一個輸出流對象:
也可以使用一個文件對象來創建一個輸出流來寫文件。我們首先得使用File()方法來創建一個文件對象:
File f = new File("C:/java/hello"); OutputStream f = new FileOutputStream(f); //文件名 :fileStreamTest2.java import java.io.*;public class fileStreamTest2{public static void main(String[] args) throws IOException {File f = new File("a.txt");FileOutputStream fop = new FileOutputStream(f);// 構建FileOutputStream對象,文件不存在會自動新建OutputStreamWriter writer = new OutputStreamWriter(fop, "UTF-8");// 構建OutputStreamWriter對象,參數可以指定編碼,默認為操作系統默認編碼,windows上是gbkwriter.append("中文輸入");// 寫入到緩沖區writer.append("\r\n");//換行writer.append("English");// 刷新緩存沖,寫入到文件,如果下面已經沒有寫入的內容了,直接close也會寫入writer.close();//關閉寫入流,同時會把緩沖區內容寫入文件,所以上面的注釋掉fop.close();// 關閉輸出流,釋放系統資源FileInputStream fip = new FileInputStream(f);// 構建FileInputStream對象InputStreamReader reader = new InputStreamReader(fip, "UTF-8");// 構建InputStreamReader對象,編碼與寫入相同StringBuffer sb = new StringBuffer();while (reader.ready()) {sb.append((char) reader.read());// 轉成char加到StringBuffer對象中}System.out.println(sb.toString());reader.close();// 關閉讀取流fip.close();// 關閉輸入流,釋放系統資源} }7.4 Java中的目錄
(1)創建目錄:
File類中有兩個方法可以用來創建文件夾:
- mkdir( )方法創建一個文件夾,成功則返回true,失敗則返回false。失敗表明File對象指定的路徑已經存在,或者由于整個路徑還不存在,該文件夾不能被創建。
- mkdirs()方法創建一個文件夾和它的所有父文件夾。
注意: Java 在 UNIX 和 Windows 自動按約定分辨文件路徑分隔符。如果你在 Windows 版本的 Java 中使用分隔符 (/) ,路徑依然能夠被正確解析。
(2)讀取目錄
一個目錄其實就是一個 File 對象,它包含其他文件和文件夾。
如果創建一個 File 對象并且它是一個目錄,那么調用 isDirectory() 方法會返回 true。
可以通過調用該對象上的 list() 方法,來提取它包含的文件和文件夾的列表。
摘自:http://www.runoob.com/java/java-methods.html
http://www.runoob.com/java/java-files-io.html
總結
以上是生活随笔為你收集整理的Java 方法、 流(Stream)、文件(File)和IO 总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java 正则表达式 总结
- 下一篇: recognition和recogniz