zoukankan      html  css  js  c++  java
  • 用Groovy读取本地文件的代码

    下面这些包默认已经被导入了,不需要使用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里,成对的大括号是声明闭包用的,因此定义数组的语法改用中括号:

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

    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比起来短小精悍:

    我的文件内容:

    输出:

    这种方法也行:

    完整代码:

    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的原创文章,请关注公众号"汪子熙":

  • 相关阅读:
    hdu 2544 Dijstra模板题
    hdu 1002 prime 模板
    POJ_2653_Pick-up sticks_判断线段相交
    POJ_1556_The Doors_判断线段相交+最短路
    POJ_1269_Intersecting Lines_求直线交点
    POJ_3304_Segments_线段判断是否相交
    POJ_2318_TOYS&&POJ_2398_Toy Storage_二分+判断直线和点的位置关系
    ZOJ_2314_Reactor Cooling_有上下界可行流模板
    LuoguP4234_最小差值生成树_LCT
    BZOJ_3996_[TJOI2015]线性代数_最大权闭合子图
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/13287245.html
Copyright © 2011-2022 走看看