Why are you using RawText? The only reason to use it here is to have it split the lines up into strings for you... but then you go and convert the entire file to a string and split that manually.

Either use RawText to obtain the string lines one at a time (and thus rely on its LF splitting logic), or pass the whole blob through RawParseUtils.decode():

  String s = RawParseUtils.decode(reader
    .open(blobId)
    .getBytes(Integer.MAX_VALUE));