-1

我试图在不知道数组大小的情况下填充数组。我使用 ArrayList 来做到这一点

        String filename = "C:\\tmTest.123";
    int tmHex;
    FileInputStream in = null;
    ArrayList<Byte> bytes = new ArrayList<Byte>();        

    try
    {            
        in = new FileInputStream(filename); 

        while((tmHex = in.read()) != -1)
        {                
            bytes.add(Byte.parseByte("", tmHex));

        }
    }
    catch (IOException ex)
    {
        Logger.getLogger(NARSS02.class.getName()).log(Level.SEVERE, null, ex);
    } 

但是我遇到了异常 NumberFormatException。为什么 ?以及在从文件读取字节期间是否有任何其他方法来填充数组。

4

1 回答 1

1

来自 Java API:(parseByte 方法总结)

如果发生以下任何一种情况,则会引发 NumberFormatException 类型的异常:

  • 第一个参数为空或长度为零的字符串。
  • 基数小于 Character.MIN_RADIX 或大于 Character.MAX_RADIX。
  • 字符串的任何字符都不是指定基数的数字,除非第一个字符可能是减号“-”(“\u002D”),前提是该字符串的长度大于 1。
  • 字符串表示的值不是字节类型的值。
于 2013-02-05T01:53:14.143 回答