Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

234
Visualizações
Transmisión de contenidos desde un archivo lz4 usando InputStreamReader - Stream Corrupted - Java

Estoy tratando de transmitir datos desde el archivo comprimido lz4 y escribirlos en StringBuilder . Pero obtengo la excepción Stream is corrupted. A continuación se muestra mi código.

 import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; import net.jpountz.lz4.LZ4BlockInputStream; import org.apache.commons.io.FileUtils; public class Lz4TestRead { public static void main(String[] args) throws IOException { byte[] data = FileUtils.readFileToByteArray(new File("D:\\sparker\\input\\payload.lz4")); try(ByteArrayInputStream bis = new ByteArrayInputStream(data); LZ4BlockInputStream lz4BlockInputStream = new LZ4BlockInputStream(bis)) { InputStreamReader streamReader = new InputStreamReader(lz4BlockInputStream, StandardCharsets.UTF_8); StringBuilder sb = new StringBuilder(); while (true) { int read = streamReader.read(); if (read < 0) { break; } sb.append((char) read); } streamReader.close(); System.out.println(sb.toString()); }catch (Exception ex) { ex.printStackTrace(); } } }

Estoy obteniendo por debajo de la excepción

 java.io.IOException: Stream is corrupted at net.jpountz.lz4.LZ4BlockInputStream.refill(LZ4BlockInputStream.java:202) at net.jpountz.lz4.LZ4BlockInputStream.read(LZ4BlockInputStream.java:157) at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178) at sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:127) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:112) at java.io.InputStreamReader.read(InputStreamReader.java:168) at com.test.Lz4TestRead.main(Lz4TestRead.java:21)

Alguien puede ayudarme que estoy haciendo mal.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Este código funciona bien

ACTUALIZACIÓN: actualizó el código para respetar el primer comentario

 import net.jpountz.lz4.LZ4BlockInputStream; import net.jpountz.lz4.LZ4BlockOutputStream; import java.io.*; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; public class Lz4TestRead { public static void main(String[] args) throws IOException { //generate an LZ4 encrypted file byte[] buf = new byte[1024]; try (LZ4BlockOutputStream out = new LZ4BlockOutputStream(new FileOutputStream("/tmp/text.lz4"), 1024); ByteArrayInputStream in = new ByteArrayInputStream("hello world this is a LZ4 compressed text".getBytes())) { int len; while ((len = in.read(buf)) > 0) { out.write(buf, 0, len); } } StringBuilder sb = new StringBuilder(); try (ByteArrayInputStream bis = new ByteArrayInputStream(Files.readAllBytes(Path.of("/tmp/text.lz4"))); LZ4BlockInputStream lz4BlockInputStream = new LZ4BlockInputStream(bis); InputStreamReader streamReader = new InputStreamReader(lz4BlockInputStream, StandardCharsets.UTF_8)) { while (true) { int read = streamReader.read(); if (read < 0) { break; } sb.append((char) read); } } System.out.println(sb.toString()); } }

Pero ten en cuenta que tienes que comprimir los datos usando LZ4BlockOutputStream para poder descomprimirlos usando LZ4BlockInputStream

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda