Com Java:
Eu tenho um byte[]
que representa um arquivo.
Como escrevo isso em um arquivo (por exemplo, C:\myfile.pdf
)
Eu sei que é feito com o InputStream, mas não consigo resolver isso.
Use o Apache Commons IO
FileUtils.writeByteArrayToFile(new File("pathname"), myByteArray)
Ou, se você insistir em fazer um trabalho para si mesmo ...
try (FileOutputStream fos = new FileOutputStream("pathname")) {
fos.write(myByteArray);
//fos.close(); There is no more need for this line since you had created the instance of "fos" inside the try. And this will automatically close the OutputStream
}
try {} finally {}
para garantir a limpeza adequada dos recursos.Sem nenhuma biblioteca:
Com o Google Guava :
Com o Apache Commons :
Todas essas estratégias também exigem que você capture uma IOException em algum momento.
fonte
Outra solução usando
java.nio.file
:fonte
C:\myfile.pdf
iria trabalhar em Android de qualquer maneira ...;)Também desde o Java 7, uma linha com java.nio.file.Files:
Onde data é seu byte [] e filePath é uma String. Você também pode adicionar várias opções de abertura de arquivo com a classe StandardOpenOptions. Adicione arremessos ou surround com try / catch.
fonte
Paths.get(filePath);
vez denew File(filePath).toPath()
A partir do Java 7, você pode usar a instrução try-with-resources para evitar o vazamento de recursos e facilitar a leitura do seu código. Mais sobre isso aqui .
Para escrever seu
byteArray
em um arquivo, você faria:fonte
Experimente um
OutputStream
ou mais especificamenteFileOutputStream
fonte
Na verdade, você seria escrita a um arquivo de saída ...
fonte
fonte
////////////////////////// 1] File to Byte [] /////////////////// //
/////////////////////// 2] Byte [] to File //////////////////// ///////
fonte
Exemplo básico:
fonte
Este é um programa em que estamos lendo e imprimindo o deslocamento e o comprimento da matriz de bytes usando o String Builder e gravando a extensão do deslocamento da matriz de bytes no novo arquivo.
` Digite o código aqui
O / P no console: fghij
O / P em novo arquivo: cdefg
fonte
Você pode experimentar o Cactoos :
Mais detalhes: http://www.yegor256.com/2017/06/22/object-oriented-input-output-in-cactoos.html
fonte