我想在scala中创建一个包含如下列表的二进制文件:
271,813854,270
271,814100,267
271,814106,813858
325,813854,324
325,814100,321
325,814106,813858
643,813854,642
643,814100,639
643,814106,813858
670,813854,813855
670,814100,666
670,814106,813858
为了得到这个,我正在编写以下代码:
class Indexes (val listSPO:List[tripleInt], val listPSO:List[tripleInt], val listOSP:List[tripleInt] ){
val sl = listSPO.sortBy(l => (l.sub, l.pre))
val pl = listPSO.sortBy(l => (l.sub, l.pre))
val ol = listOSP.sortBy(l => (l.sub, l.pre))
var y1:Int=0
var y2:Int=0
var y3:Int=0
val fstream:FileOutputStream = new FileOutputStream("patSPO.dat")
var out:BufferedOutputStream = new BufferedOutputStream(fstream)
val fstream2:FileOutputStream = new FileOutputStream("patPSO.dat")
var out2:BufferedOutputStream = new BufferedOutputStream(fstream2)
val fstream3:FileOutputStream = new FileOutputStream("patOSP.dat")
var out3:BufferedOutputStream = new BufferedOutputStream(fstream3)
for ( a <- 0 to listSPO.size-1){
y1 = listSPO(a).sub
y2 = listSPO(a).pre
y3 = listSPO(a).obj
val tpiSOP:tripleInt = new tripleInt(y1,y3,y2)
out.write(tpiSOP)
}}
然后每个列表包含三个Int数字,并且我想为每个列表创建一个对应的文件。 tripleInt对象声明为:
class tripleInt(var sub:Int, var pre:Int, var obj:Int)
我的问题是为什么我在行out.write(tpiSOP)中收到错误以及如何修复它?
更新:错误是'无法解决此类签名''类型不匹配'
答案 0 :(得分:1)
URLDecoder
方法不知道write()
是什么或者如何处理它。您必须将tripleInt
更改为tpiSop
方法理解的内容,即单个write()
或Int
。