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>
index | next in thread | raw e-mail
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
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3FA82A39.5060500>
