Apparently Java's number parsing methods don't like strings that contain null ('\0') characters in them. This was something I noticed when I was writing my file system project for CS450. It creates a formated simulated file system that is nothing but a bunch of null characters and then overwrites them. Wellll when I was writing the code that would read the pointer to the next cluster, there would typically be a number of null characters that had to be read along with the pointer. Needless to say, it wasn't until I filtered out the null characters that it actually worked.
For the newbies out there, here is a simple code example to show what I mean:
public class NullTest
{
public static void main(String[] args)
{
String x = "512\0";
try
{
Integer y = Integer.parseInt(x);
System.out.println(y);
}
catch (NumberFormatException n)
{
n.printStackTrace();
Integer z = Integer.parseInt(x.substring(0, x.indexOf("")));
System.out.println("Now I get " + z);
}
}
}
It's really stupid since null characters are not used by Java for the same thing that they are used for by C. This seems to be a really idiotic bug for them to have not fixed yet. Of course, in their defense, I suppose that very few Java programmers would have occasion to actually use null characters in the first place.
Leave a comment