src/Pure/General/bytes.scala
changeset 68087 dac267cd51fe
parent 68018 3747fe57eb67
child 68094 0b66aca9c965
equal deleted inserted replaced
68086:9e1c670301b8 68087:dac267cd51fe
    35     else {
    35     else {
    36       val b = new Array[Byte](length)
    36       val b = new Array[Byte](length)
    37       System.arraycopy(a, offset, b, 0, length)
    37       System.arraycopy(a, offset, b, 0, length)
    38       new Bytes(b, 0, b.length)
    38       new Bytes(b, 0, b.length)
    39     }
    39     }
       
    40 
       
    41 
       
    42   def hex(s: String): Bytes =
       
    43   {
       
    44     def err(): Nothing = error("Malformed hexadecimal representation of bytes\n" + s)
       
    45     val len = s.length
       
    46     if (len % 2 != 0) err()
       
    47 
       
    48     val n = len / 2
       
    49     val a = new Array[Byte](n)
       
    50     for (i <- 0 until n) {
       
    51       val j = 2 * i
       
    52       try { a(i) = Integer.parseInt(s.substring(j, j + 2), 16).toByte }
       
    53       catch { case _: NumberFormatException => err() }
       
    54     }
       
    55     new Bytes(a, 0, n)
       
    56   }
    40 
    57 
    41 
    58 
    42   /* read */
    59   /* read */
    43 
    60 
    44   def read_stream(stream: InputStream, limit: Int = Integer.MAX_VALUE, hint: Int = 1024): Bytes =
    61   def read_stream(stream: InputStream, limit: Int = Integer.MAX_VALUE, hint: Int = 1024): Bytes =