2017-03-22 2 views
1

나는의 형식이 일치를 가지고있는 '동안 (blocks.hasNext)'오류 유형 불일치 "라고형식 불일치는

def encrypt(file: String): Array[Byte] = { 

    val text = Source.fromFile(file) 
    val list=text.toList  
    val blocks=list.grouped(501) 

    while(blocks.hasNext) { 
      val block0=blocks.next()  
      val stringBlock=block0.mkString 
      val arrayBytes=stringBlock.getBytes 
    } 
} 

기능, 발견 : 단위, 필요한 : 배열 [바이트 ] ". 문제가 어디에 있습니까? 당신은 변수에 데이터를 저장 아무것도 반환하지

+0

반환 유형이 Array [Byte]이지만 ar e Void (일명 Unit) – prayagupd

+0

그런데 여기 파일을 읽으려고하십니까 ?? – prayagupd

+0

@prayagupd 예, 주 기능의 파일을 읽었습니다. –

답변

1

노력이

def encrypt(file: String): Array[Byte] = { 
    val text = Source.fromFile(file) 
    val list=text.toList 
    val blocks=list.grouped(501).toArray 
blocks.flatMap{block0 => 
     val stringBlock=block0.mkString 
     stringBlock.getBytes 
     } 
} 

지금 flatMap이가 당신이

+0

시도해 보았습니다. 답변이 불일치하는 것으로 보입니다. –

+0

@JasonShu 죄송합니다. 로직을 업데이트하십시오. –

+1

예, 작동합니다. 노력해 주셔서 감사합니다. –

0

변경 while 루프 작동 결과

Array[Byte] 유형으로 희망을 반환합니다 :

blocks.flatMap(_.mkString.getBytes).toArray