■ はじめに
https://dk521123.hatenablog.com/entry/2023/03/16/012034
https://dk521123.hatenablog.com/entry/2023/03/21/003817
でファイルのオープンなどを行ったので、 基本的なところを整理した。
目次
【1】変換 1)Byte[] to InpiutStream 2)Byte[] to InpiutStream 【2】Scalaの try-with-resources
【1】変換
1)Byte[] to InpiutStream
* JavaのByteArrayInputStreamを使用する
https://docs.oracle.com/javase/jp/8/docs/api/java/io/ByteArrayInputStream.html
* 以下の関連記事で、S3バケットにあるYAMLファイルを Scalaのクラスに変換するのに使用した
https://dk521123.hatenablog.com/entry/2023/03/24/211033
// より抜粋 import java.io.ByteArrayInputStream def readYaml[T: ClassTag](inputPath: Array[Byte]): T = { // reader: Array[Byte] val reader = new ByteArrayInputStream(inputPath)
参考文献
https://hacknote.jp/archives/4724/
2)ByteBuffer to Byte[]
import java.nio.ByteBuffer // secretValue: ByteBuffer val secretValue = secretValueResponse.getSecretBinary() val secretValueAsBytes = new Array[Byte](secretValue.remaining) // return Array[Byte] secretValue.get(secretValueAsBytes)
参考文献
https://stackoverflow.com/questions/28744096/convert-bytebuffer-to-byte-array-java
ByteBuffer buf = ... byte[] arr = new byte[buf.remaining()]; buf.get(arr);
【2】Scalaの try-with-resources
* C# でいう using
https://qiita.com/ka2kama/items/cd846b15fbb56cdbc9ea
Scala 2.12以前
* そういった機構はない...
Scala 2.13
* Scala 2.13.0からは標準ライブラリにscala.util.Usingオブジェクトが追加 => 以下の関連記事の例3で使用した
関連記事
Scala ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2023/03/10/193805
Scala ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/03/12/184331
Scala ~ 基本編 / 繰り返し ~
https://dk521123.hatenablog.com/entry/2023/01/24/000000
Scala ~ 基本編 / Option型 ~
https://dk521123.hatenablog.com/entry/2023/03/09/000000
Scala ~ 基本編 / メソッド ~
https://dk521123.hatenablog.com/entry/2023/03/03/000000
Scala ~ 基本編 / クラス ~
https://dk521123.hatenablog.com/entry/2023/03/14/000857
Scala ~ 基本編 / コレクション ~
https://dk521123.hatenablog.com/entry/2023/03/13/000345
Scala ~ 基本編 / 日付・日時 ~
https://dk521123.hatenablog.com/entry/2023/03/08/000000
Scala ~ 基本編 / 正規表現 ~
https://dk521123.hatenablog.com/entry/2023/03/18/034704
Scala ~ 基本編 / ジェネリック
https://dk521123.hatenablog.com/entry/2023/03/21/003817
Scala ~ ファイル名・パスの扱い ~
https://dk521123.hatenablog.com/entry/2023/03/11/000000
Scala ~ ファイルの読み書き ~
https://dk521123.hatenablog.com/entry/2023/04/07/000000
Scala ~ YAML ~
https://dk521123.hatenablog.com/entry/2023/03/16/012034
Scala ~ AWS SDK ~
https://dk521123.hatenablog.com/entry/2023/03/24/211033