Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package core.base
- /**
- uma classe para comprimir/descomprimir em gzip
- deve conseguir trabalhar com bytearray/file/string como parametro de entrada
- - comprimir em bytearray e arquivo
- - descomprimir em byterray, arquivo e string
- mas veja bem, é uma classe caprichada pq é pequena, quero que vc consiga fazer funcionar assim
- val minhaString = GZIP(byteArray).decompress.asString(charsetOpcional)
- */
- import java.io.*
- import java.nio.charset.Charset
- import java.util.zip.GZIPInputStream
- import java.util.zip.GZIPOutputStream
- class GZIP {
- private var data: ByteArray? = null
- /**
- * recebe um byteArray
- */
- constructor(content: ByteArray) {
- data = content
- }
- /**
- * recebe uma scrint que será convertida para byteArray
- */
- constructor(string: String) {
- data = string.toByteArray()
- }
- /**
- * rebece o arquivo q retornará o conteudo
- */
- constructor(file: File) {
- if (!file.exists()){
- return;
- }
- data = file.readBytes()
- }
- val compress = Compress()
- inner class Compress {
- fun asByteArray(): ByteArray? {
- val bos = ByteArrayOutputStream()
- GZIPOutputStream(bos).buffered(DEFAULT_BUFFER_SIZE).use { it.write(data) }
- return bos.toByteArray()
- }
- fun asFile(file: File) {
- ////se existir renomeia
- if (file.exists()) {
- var rand = System.currentTimeMillis()
- file.renameTo(File(file.path.replace(".gz" ,".$rand.gz" )))
- }
- asByteArray().let {
- if (it != null) {
- file.writeBytes(it)
- }
- }
- }
- }
- val decompress = Decompress()
- inner class Decompress {
- fun asByteArray(): ByteArray? {
- return GZIPInputStream(data?.inputStream()).buffered(DEFAULT_BUFFER_SIZE).use { it.readBytes() }
- }
- fun asString(charset: Charset = Charsets.UTF_8): String? {
- return asByteArray()?.let { String(it, charset) }
- }
- fun asFile(file: File) {
- ////se existir renomeia
- if (file.exists()) {
- var rand = System.currentTimeMillis()
- file.renameTo(File(file.path.replace("." + file.extension ,".$rand." + file.extension )))
- }
- val bytes = asByteArray() ?: return
- asByteArray()?.let { file.writeBytes(it) }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement