前提・実現したいこと
お世話になります。
Kotlinでバイナリーファイルを生成しようと勉強していますが
どうしても思った通りのバイナリ値になりません。
やりたいのは、バイナリファイルに4バイトで 10 00 00 00
と
記述したいです。
発生している問題
kotlin
1val byte = 0x10000000 2val file = filesDir.path + "/test.dat" 3val bufferedOutputStream = BufferedOutputStream(FileOutputStream(file)) 4 5bufferedOutputStream.write(byte) 6bufferedOutputStream.flush() 7bufferedOutputStream.close() 8// 結果: 00
kotlin
1val byte = 0x10000000 2val file = filesDir.path + "/test.dat" 3val bufferedOutputStream = BufferedOutputStream(FileOutputStream(file)) 4 5bufferedOutputStream.write("%x".format(byte).toByteArray()) 6bufferedOutputStream.flush() 7bufferedOutputStream.close() 8// 結果: 31 30 30 30 30 30 30 30 (10進側: 100000000)
試したこと
kotlin
1val byte = ByteArray(4) 2byte[0] = 0x10 3byte[1] = 0 4byte[2] = 0 5byte[3] = 0 6val bufferedOutputStream = BufferedOutputStream(FileOutputStream(file)) 7 8bufferedOutputStream.write(byte) 9bufferedOutputStream.flush() 10bufferedOutputStream.close() 11// 結果: 10 00 00 00
これ以外にもいろいろと記述したいのですが、これだとかなりの手間です。
スリムな記述方法はありませんでしょうか。
いろいろとググりましたが、これといったものが見つからなく、
ByteArrayOf()
やtoHexString()
は使えないようで困っています。
(Android Studi0 に記述すると赤くエラーになる。import
は自動生成)
どなたかご教示ください。
よろしくお願い致します。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。