 
                            According to the Java API [API 062006] for the class InputStream, with an array of bytes b as the parameter, the read(b) method:
...
The trailing byte ranges overlap the range of both the single byte and lead byte characters. This can cause issues because if a multibyte character is separated between buffer boundaries, it will be interpreted differently, as defined by its composing bytes [Phillips 052005].
A third data reading issue arises from the behavior of the String class constructor with respect to the default encoding. See FIO03-J. Specify the character encoding while performing file or network IO for more details.
...
References
| Wiki Markup | 
|---|
| [[API 062006|AA. Java References#API 06]\] Class {{InputStream}}, {{DataInputStream}} [[Phillips 052005|AA. Java References#Phillips 05]\] [[Harold 991999|AA. Java References#Harold 99]\] Chapter 7: Data Streams, Reading Byte Arrays [[Chess 072007|AA. Java References#Chess 07]\] 8.1 Handling Errors with Return Codes \[[MITRE 092009|AA. Java References#MITRE 09]\] [CWE ID 135|http://cwe.mitre.org/data/definitions/135.html] "Incorrect Calculation of Multi-Byte String Length" | 
...