Convert a formatted file size to bytes
The function throws NumberFormatException and IllegalArgumentException.
Your implementation caters to your edge cases, take these for example:


1Kb (Do you wish to handle bits). This gets converted to 1KB (unwantedly).
1M iB (Incorrect position of space)
1 (No units).


Not sure if the input is manual or system feeded.
Why not have a function that validates the input and if it can be tailored (1MiB), it returns a operable string.
A Map can be used instead of the units' char array, for loop and Math.pow for each input.
getBytesFromFormattedSize() calls getBytesFromSize() which again calls getBytesFromFormattedSize(). Instead a flow as this would look clean. 

 getBytesFromFormattedSize(){
     //Get a valid string (if possible) (in two forms value and unit)
     // Proceed thereof.
 }

fixedSize.contains()  has an O(n) time complexity. Instead a boolean would easily suffice the otherwise redundant call once we insert a space.
Names such as arr, size, bytes are ignorant to their puprose.
Too much of hard coded values to actually understand the flow.
Should I return 1000? http://en.wikipedia.org/wiki/Mebibyte
return Integer.parseInt(arr[0]); assumes that the value would not be greater than INT_MAX? Does the input guarantee that?
If size is an empty string, charAt(0) could give exception IndexOutOfBoundsException().