Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What type is the best to manage binary data in Java?

Tags:

java

binary

I'm getting some documents from the web and many of them are binary files (executables, PDF, etc.). In Java, what is the correct type to hold the binary data until save it in database? Can I use a String for this?

like image 985
Renato Dinhani Avatar asked Mar 07 '12 17:03

Renato Dinhani


1 Answers

Use a byte array (byte[]) or InputStream (e.g. ByteArrayInputStream). Java Strings are not a good container for generic binary data.

The Apache library commons-io has some nice utility classes for dealing with bytes and streams.

e.g. IOUtils.toByteArray(InputStream)


ByteBuffer was introduced as part of Java NIO, available in Java 4 (1.4) and later. In specialized scenarios, it can have performance benefits over using a byte[]. It also has some helpful convenience methods. I still usually use byte[], though, since it is more widely known, more common in APIs, and almost always performs well enough.

like image 165
Mike Clark Avatar answered Oct 01 '22 11:10

Mike Clark