用Groovy讀取本地檔案的程式碼

i042416發表於2020-07-14

下面這些包預設已經被匯入了,不需要使用import再次顯式匯入:

  • java.io.*
  • java.lang.*
  • java.math.BigDecimal
  • java.math.BigInteger
  • java.net.*
  • java.util.*
  • groovy.lang.*
  • groovy.util.*

Groovy的執行時方法呼叫抉擇

執行時,Groovy根據引數型別決定具體哪一個方法被執行。而Java恰恰相反,被呼叫的方法根據引數型別,在編譯期間就已經定下來了。

In Groovy, the methods which will be invoked are chosen at runtime. This is called runtime dispatch or multi-methods. It means that the method will be chosen based on the types of the arguments at runtime. In Java, this is the opposite: methods are chosen at compile time, based on the declared types.

下列程式碼的列印結果是1:

int method(String arg) {
    return 1;}int method(Object arg) {
    return 2;}Object o = "Object";int result = method(o);println result


用Groovy讀取本地檔案的程式碼


在Groovy裡,成對的大括號是宣告閉包用的,因此定義陣列的語法改用中括號:

int[] array = [1, 2, 3]


用Groovy讀取本地檔案的程式碼


Groovy裡的閉包,it為預設引數:

Closures may have 1...N arguments, which may be statically typed or untyped. The first parameter is available via an implicit untyped argument named it if no explicit arguments are named. If the caller does not specify any arguments, the first parameter (and, by extension, it) will be null.
That means that a Groovy Closure will always have at least one argument, called it (if not specified otherwise) and it will be null if not given as a parameter.

看個用Groovy讀取本地檔案內容的程式碼,和Java比起來短小精悍:


用Groovy讀取本地檔案的程式碼


我的檔案內容:


用Groovy讀取本地檔案的程式碼


輸出:


用Groovy讀取本地檔案的程式碼


這種方法也行:


用Groovy讀取本地檔案的程式碼


完整程式碼:

new File('c:\\temp\\1.txt').eachLine('UTF-8') {
    println "new line->" + it
 }
 new File('c:\\temp\\1.txt').withReader('UTF-8') { reader ->
     reader.eachLine {
         println "Another line:" + it
     }
  }

要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":

用Groovy讀取本地檔案的程式碼


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2704276/,如需轉載,請註明出處,否則將追究法律責任。

相關文章