byte[] to file in Java
Use Apache Commons IO
FileUtils.writeByteArrayToFile(new File("pathname"), myByteArray)
Or, if you insist on making work for yourself...
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
}
Convert bytes[] to 'File' in Java
try (FileOutputStream fileOuputStream = new FileOutputStream("filename")){
fileOuputStream.write(byteArray);
}
Byte array to File object without saving to disk
That's not how it works. a java.io.File
object is a light wrapper: Check out the source code - it's got a String
field that contains the path and that is all it has aside from some bookkeeping stuff.
It is not possible to represent arbitrary data with a java.io.File object. j.i.File
objects represent literal files on disk and are not capable of representing anything else.
Files.readAllBytes
gets you the contents from the bytes, that's.. why the method has that name.
The usual solution is that a method in some library that takes a File is overloaded; there will also be a method that takes a byte[]
, or, if that isn't around, a method that takes an InputStream
(you can make an IS from a byte[]
easily: new ByteArrayInputStream(byteArr)
will do the job).
If the API you are using doesn't contain any such methods, it's a bad API and you should either find something else, or grit your teeth and accept that you're using a bad API, with all the workarounds that this implies, including having to save bytes to disk just to satisfy the asinine API.
But look first; I bet there is a byte[]
and/or InputStream
variant (or possibly URL
or ByteBuffer
or ByteStream
or a few other more exotic variants).
File to byte[] in Java
It depends on what best means for you. Productivity wise, don't reinvent the wheel and use Apache Commons. Which is here FileUtils.readFileToByteArray(File input)
.
How can I write a byte array to a file in Java?
You can use IOUtils.write(byte[] data, OutputStream output) from Apache Commons IO.
KeyGenerator kgen = KeyGenerator.getInstance("AES");
kgen.init(128);
SecretKey key = kgen.generateKey();
byte[] encoded = key.getEncoded();
FileOutputStream output = new FileOutputStream(new File("target-file"));
IOUtils.write(encoded, output);
Related Topics
Does a Tcp Socket Connection Have a "Keep Alive"
El Access a Map Value by Integer Key
Java Jar File: Use Resource Errors: Uri Is Not Hierarchical
Why Won't This Generic Java Code Compile
Difference Between @Mock, @Mockbean and Mockito.Mock()
How to Create and Handle Composite Primary Key in JPA
How to Read PDF Files Using Java
Does Polymorphism Apply on Class Attributes in Java
Ignore Duplicates When Producing Map Using Streams
Spring Boot - Cannot Determine Embedded Database Driver Class for Database Type None
How to Annotate MySQL Autoincrement Field with JPA Annotations
How to Perform String Diffs in Java
How to Match String Within Parentheses (Nested) in Java
Advanced Formatted Text Field Input Manipulation
Hibernate, @Sequencegenerator and Allocationsize