1

我的方法有问题.each(int bufferSize, Closure closure)

new FileInputStream(fname).eachByte(4) { buffer ->
    def x = new BigInteger(buffer);
    println x;
}

和这里类似:

new File(fname).eachByte(4) { buffer -> 
    def x = new BigInteger(buffer);
    println x;
}

所以,我得到一个

groovy.lang.MissingMethodException:没有方法签名:$_readBitSeq_closure2.doCall() 适用于参数类型:([B, java.lang.Integer) 值:[[60, 110, -13, 95], 4]

有谁知道如何解决这个问题???

谢谢,奥列格。

4

1 回答 1

1

eachByte( int )方法需要一个 2 参数Closure

第一个参数是字节缓冲区,第二个参数是从 Stream 中读取的字节数。尝试:

new FileInputStream(fname).eachByte(4) { buffer, nReads ->
    def x = new BigInteger(buffer);
    println x;
}

对于_File.eachByte( int )

于 2013-11-08T11:20:06.153 回答