reads two lines of text from the file. It compares the first one to null, then reads another and compares it to the literal "". Imagine that the program is about to read the last line of the file. The first "readLine" above reads it, and it's not null, so that test succeeds; then you read another line, and it's null, but you compare that to "", and that test also succeeds, so you go into the body of the loop. The call to strValue.trim() then throws an exception.
There are quite a few changes you should make here. First of all, you want to call readLine() only once; any other tests should use that variable strValue directly, without reading another line!
Also, you cannot use "==" or "!=" to compare the contents of String objects, as you are doing here; these operators check to see if two objects are the same object, rather than whether they contain the same characters. Always use the "equals()" method to compare strings.
Thirdly, the "trim()" means you thing that there might be stray whitespace on a line; if that's the case, then comparing the untrimmed strValue to "" might fail, even though the line is blank -- it might just have spaces on it. In that case, you'd want to trim it before comparing it to whitespace.