Date: Tue, 04 Nov 2003 14:37:45 -0800 From: Milo Hyson <milo@cyberlifelabs.com> To: FreeBSD Java Mailing List <freebsd-java@FreeBSD.ORG> Subject: Odd String behavior Message-ID: <3FA82A39.5060500@cyberlifelabs.com>
next in thread | raw e-mail | index | archive | help
For some reason, the following code fragment performs differently on two different machines: int length = (int)htmlFile.length(); byte bytes[] = new byte[length]; logger.info("length = " + length); InputStream in = new FileInputStream(htmlFile); for (int offset=0; length>0; ) { int numRead = in.read(bytes, offset, length); logger.info("numRead = " + numRead); if (numRead == -1) break; offset += numRead; length -= numRead; } in.close(); String rawHTML = new String(bytes, "UTF-8"); logger.info("rawHTML = " + rawHTML.length() + " characters"); On 4.9-RELEASE with native JDK 1.4.1-p3, I get the following correct output: 30799 [main] INFO com.internetdentalalliance.doorway.builder.TemplateFactory - length = 18936 30799 [main] INFO com.internetdentalalliance.doorway.builder.TemplateFactory - numRead = 18936 30806 [main] INFO com.internetdentalalliance.doorway.builder.TemplateFactory - rawHTML = 18936 characters However, on 4.5-RELEASE with native JDK 1.3.1-p7, I get the following erroneous output: 3046 [main] INFO com.internetdentalalliance.doorway.builder.TemplateFactory - length = 18936 3046 [main] INFO com.internetdentalalliance.doorway.builder.TemplateFactory - numRead = 18936 3052 [main] INFO com.internetdentalalliance.doorway.builder.TemplateFactory - rawHTML = 11419 characters It's losing 40% of the characters when converting the raw bytes to a String. Any ideas? -- Milo Hyson Chief "Mad" Scientist and Director of Asian Operations CyberLife Labs, LLC
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3FA82A39.5060500>