Package java.io

Examples of java.io.UTFDataFormatException


    }

    private IOException utfFormatException(String s) {
        noMoreReads = true;
        closeIn();
        return new UTFDataFormatException(s);
    }
View Full Code Here


    }

    private IOException utfFormatException() {
        noMoreReads = true;
        closeIn();
        return new UTFDataFormatException();
    }
View Full Code Here

            else if ((c & 0x60) == 0x40) // we know the top bit is set here
            {
                // two byte character
                count += 2;
                if (utflen != 0 && count > utflen)
                    throw new UTFDataFormatException();      
                char2 = in.readUnsignedByte();
                if ((char2 & 0xC0) != 0x80)
                    throw new UTFDataFormatException();      
                actualChar = (char)(((c & 0x1F) << 6) | (char2 & 0x3F));
            }
            else if ((c & 0x70) == 0x60) // we know the top bit is set here
            {
                // three byte character
                count += 3;
                if (utflen != 0 && count > utflen)
                    throw new UTFDataFormatException();      
                char2 = in.readUnsignedByte();
                char3 = in.readUnsignedByte();
                if ((c == 0xE0) && (char2 == 0) && (char3 == 0)
                    && (utflen == 0))
                {
                    // we reached the end of a long string,
                    // that was terminated with
                    // (11100000, 00000000, 00000000)
                    break readingLoop;
                }

                if (((char2 & 0xC0) != 0x80) || ((char3 & 0xC0) != 0x80))
                    throw new UTFDataFormatException();      
               
               
                actualChar = (char)(((c & 0x0F) << 12) |
                                           ((char2 & 0x3F) << 6) |
                                           ((char3 & 0x3F) << 0));
            }
            else {
                throw new UTFDataFormatException(
                        "Invalid code point: " + Integer.toHexString(c));
            }

            str[strlen++] = actualChar;
        }
View Full Code Here

            else if ((c & 0x60) == 0x40) // we know the top bit is set here
            {
                // two byte character
                count += 2;
                if (utflen != 0 && count > utflen)
                    throw new UTFDataFormatException();      
                char2 = in.readUnsignedByte();
                if ((char2 & 0xC0) != 0x80)
                    throw new UTFDataFormatException();      
                actualChar = (char)(((c & 0x1F) << 6) | (char2 & 0x3F));
            }
            else if ((c & 0x70) == 0x60) // we know the top bit is set here
            {
                // three byte character
                count += 3;
                if (utflen != 0 && count > utflen)
                    throw new UTFDataFormatException();      
                char2 = in.readUnsignedByte();
                char3 = in.readUnsignedByte();
                if ((c == 0xE0) && (char2 == 0) && (char3 == 0)
                    && (utflen == 0))
                {
                    // we reached the end of a long string,
                    // that was terminated with
                    // (11100000, 00000000, 00000000)
                    break readingLoop;
                }

                if (((char2 & 0xC0) != 0x80) || ((char3 & 0xC0) != 0x80))
                    throw new UTFDataFormatException();      
               
               
                actualChar = (char)(((c & 0x0F) << 12) |
                                           ((char2 & 0x3F) << 6) |
                                           ((char3 & 0x3F) << 0));
            }
            else {
                throw new UTFDataFormatException(
                        "Invalid code point: " + Integer.toHexString(c));
            }

            str[strlen++] = actualChar;
        }
View Full Code Here

       
                case 12: case 13:
                    /* 110x xxxx   10xx xxxx*/
                    pos += 2;
                    if (pos > utfEnd) {
                        throw new UTFDataFormatException(
          "malformed input: partial character at end");
        }
                    char2 = buf[pos - 1];
                    if ((char2 & 0xC0) != 0x80) {
                        throw new UTFDataFormatException(
          "malformed input around byte " + pos);
        }
                    chars[index++] =
      (char) (((c & 0x1F) << 6) | (char2 & 0x3F))
                    break;
       
                case 14:
                    /* 1110 xxxx  10xx xxxx  10xx xxxx */
                    pos += 3;
                    if (pos > utfEnd) {
                        throw new UTFDataFormatException(
          "malformed input: partial character at end");
        }
                    char2 = buf[pos - 2];
                    char3 = buf[pos - 1];
                    if (((char2 & 0xC0) != 0x80) || ((char3 & 0xC0) != 0x80)) {
                        throw new UTFDataFormatException(
                                "malformed input around byte " + (pos - 1));
        }
                    chars[index++] =
      (char) (((c & 0x0F) << 12) |
        ((char2 & 0x3F) << 6) |
        ((char3 & 0x3F) << 0));
                    break;
       
                default:
                    /* 10xx xxxx,  1111 xxxx */
                    throw new UTFDataFormatException(
      "malformed input around byte " + pos);
    }
      }
   
  } catch (UTFDataFormatException e) {
View Full Code Here

                case 13:
                    /* 110x xxxx 10xx xxxx */
                    count += 2;
                    if ( count > utflen )
                    {
                        throw new UTFDataFormatException( "malformed input: partial character at end" );
                    }
                    char2 = bytearr[count - 1];
                    if ( ( char2 & 0xC0 ) != 0x80 )
                    {
                        throw new UTFDataFormatException( "malformed input around byte " + count );
                    }
                    chararr[chararr_count++] = (char) ( ( ( c & 0x1F ) << 6 ) | ( char2 & 0x3F ) );
                    break;

                case 14:
                    /* 1110 xxxx 10xx xxxx 10xx xxxx */
                    count += 3;
                    if ( count > utflen )
                    {
                        throw new UTFDataFormatException( "malformed input: partial character at end" );
                    }
                    char2 = bytearr[count - 2];
                    char3 = bytearr[count - 1];
                    if ( ( ( char2 & 0xC0 ) != 0x80 ) || ( ( char3 & 0xC0 ) != 0x80 ) )
                    {
                        throw new UTFDataFormatException( "malformed input around byte " + ( count - 1 ) );
                    }
                    chararr[chararr_count++] =
                        (char) ( ( ( c & 0x0F ) << 12 ) | ( ( char2 & 0x3F ) << 6 ) | ( ( char3 & 0x3F ) << 0 ) );
                    break;

                default:
                    /* 10xx xxxx, 1111 xxxx */
                    throw new UTFDataFormatException( "malformed input around byte " + count );
            }
        }

        // The number of chars produced may be less than utflen
        return new String( chararr, 0, chararr_count );
View Full Code Here

            } else {
                utfCount += 3;
            }
        }
        if (utfCount > 65535) {
            throw new UTFDataFormatException(); //$NON-NLS-1$
        }
        byte utfBytes[] = new byte[utfCount + 2];
        int utfIndex = 2;
        for (int i = 0; i < length; i++) {
            int charValue = str.charAt(i);
View Full Code Here

            else if ((c & 0x60) == 0x40) // we know the top bit is set here
            {
                // two byte character
                count += 2;
                if (utflen != 0 && count > utflen)
                    throw new UTFDataFormatException();     
                char2 = in.readUnsignedByte();
                if ((char2 & 0xC0) != 0x80)
                    throw new UTFDataFormatException();     
                actualChar = (char)(((c & 0x1F) << 6) | (char2 & 0x3F));
            }
            else if ((c & 0x70) == 0x60) // we know the top bit is set here
            {
                // three byte character
                count += 3;
                if (utflen != 0 && count > utflen)
                    throw new UTFDataFormatException();     
                char2 = in.readUnsignedByte();
                char3 = in.readUnsignedByte();
                if ((c == 0xE0) && (char2 == 0) && (char3 == 0)
                    && (utflen == 0))
                {
                    // we reached the end of a long string,
                    // that was terminated with
                    // (11100000, 00000000, 00000000)
                    break readingLoop;
                }

                if (((char2 & 0xC0) != 0x80) || ((char3 & 0xC0) != 0x80))
                    throw new UTFDataFormatException();     
               
               
                actualChar = (char)(((c & 0x0F) << 12) |
                                           ((char2 & 0x3F) << 6) |
                                           ((char3 & 0x3F) << 0));
            }
            else {

                throw new UTFDataFormatException();
            }

            str[strlen++] = actualChar;
        }
View Full Code Here

      }
      else if ((char1 & 0x60) == 0x40) // we know the top bit is set here
      {
        // two byte character, make sure read of next byte is in bounds.
                if (pos >= end_pos)
          throw new UTFDataFormatException();     

                char2 = (data[pos++] & 0xff);

        if ((char2 & 0xC0) != 0x80)
          throw new UTFDataFormatException();     

        str[strlen++] = (char)(((char1 & 0x1F) << 6) | (char2 & 0x3F));
      }
      else if ((char1 & 0x70) == 0x60) // we know the top bit is set here
      {
        // three byte character

        // 3 byte character, make sure read of next 2 bytes in bounds.
                if (pos + 1 >= end_pos)
          throw new UTFDataFormatException();     

                char2 = (data[pos++] & 0xff);
                char3 = (data[pos++] & 0xff);

        if ((char1 == 0xE0) &&
                    (char2 ==    0) &&
                    (char3 ==    0) &&
                    (utflen == 0))
        {
          // we reached the end of a long string,
          // that was terminated with
          // (11100000, 00000000, 00000000)
                    break;
        }
                else if (((char2 & 0xC0) != 0x80) || ((char3 & 0xC0) != 0x80))
                {
          throw new UTFDataFormatException();     
                }
                else
                {
                    str[strlen++] = (char)
                        (((char1 & 0x0F) << 12) |
                         ((char2 & 0x3F) <<  6) |
                         ((char3 & 0x3F) <<  0));
                }
      }
      else
            {
        throw new UTFDataFormatException();
      }

    }

        // update global on successful read exit.
View Full Code Here

    }
  }
  private IOException utfFormatException(String s) {
    noMoreReads = true;
    closeIn();
    return new UTFDataFormatException(s);
  }
View Full Code Here

TOP

Related Classes of java.io.UTFDataFormatException

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.