[SCALA] 스칼라의 byte 배열로 파일을 읽는 방법
SCALA스칼라의 byte 배열로 파일을 읽는 방법
나는 예제의 톤을 찾을 수 있지만 하나가 등 자바 라이브러리 나 방금 읽은 문자 / 선 /에 주로 의존에 그들은 보인다.
난 그냥 일부 파일에 읽기 및 스칼라 라이브러리와 바이트 배열을 얻으려면 - 그와 깡통 누군가의 도움이 나를?
해결법
-
==============================
1.자바 7 :
자바 7 :
import java.nio.file.{Files, Paths} val byteArray = Files.readAllBytes(Paths.get("/path/to/file"))
나는 이것이 가능한 가장 간단한 방법입니다 생각합니다. 그냥 여기에 기존 도구를 활용. NIO.2는 훌륭합니다.
-
==============================
2.이것은 (스칼라 2.8) 작동합니다 :
이것은 (스칼라 2.8) 작동합니다 :
val bis = new BufferedInputStream(new FileInputStream(fileName)) val bArray = Stream.continually(bis.read).takeWhile(-1 !=).map(_.toByte).toArray
-
==============================
3.
val is = new FileInputStream(fileName) val cnt = is.available val bytes = Array.ofDim[Byte](cnt) is.read(bytes) is.close()
-
==============================
4.도서관 scala.io.Source 바이너리 파일 읽기에 IT를 사용하지 마십시오, 문제가있다.
도서관 scala.io.Source 바이너리 파일 읽기에 IT를 사용하지 마십시오, 문제가있다.
여기에 설명 된대로 오류를 재현 할 수 있습니다 : https://github.com/liufengyun/scala-bug
파일 data.bin에서는 이진 11,101,010 인 진수로 234로 변환해야 진수 0xea를 포함한다.
main.scala 파일은 파일을 읽을 수있는 두 가지 방법을 포함 :
import scala.io._ import java.io._ object Main { def main(args: Array[String]) { val ss = Source.fromFile("data.bin") println("Scala:" + ss.next.toInt) ss.close val bis = new BufferedInputStream(new FileInputStream("data.bin")) println("Java:" + bis.read) bis.close } }
내가 스칼라 main.scala을 실행하면 프로그램의 출력은 다음과 같습니다 :
Scala:205 Java:234
자바 라이브러리는 스칼라 라이브러리 동안하지, 올바른 출력을 생성합니다.
-
==============================
5.또한 scalax.io 사용을 고려할 수 :
또한 scalax.io 사용을 고려할 수 :
scalax.io.Resource.fromFile(fileName).byteArray
-
==============================
6.당신은 아파치 코 몬즈 압축 IOUtils을 사용할 수 있습니다
당신은 아파치 코 몬즈 압축 IOUtils을 사용할 수 있습니다
import org.apache.commons.compress.utils.IOUtils val file = new File("data.bin") IOUtils.toByteArray(new FileInputStream(file))
from https://stackoverflow.com/questions/7598135/how-to-read-a-file-as-a-byte-array-in-scala by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 지도 운영에 튜플 포장 풀기 (0) | 2019.11.25 |
---|---|
[SCALA] 어떻게 스칼라 또는 Java에서 혼합 된 인코딩 된 텍스트 파일을 읽을 수? (0) | 2019.11.25 |
[SCALA] 매크로에서 익명 클래스의 방법과 구조 유형을 얻기 (0) | 2019.11.25 |
[SCALA] 어떻게지도 [지능은 모든,] 스칼라에서의 SortedMap로 변환합니까? 아니면 TreeMap의? (0) | 2019.11.25 |
[SCALA] 이클립스는 SBT에서 종속성을 인식해야하는 방법 (0) | 2019.11.25 |