2013-02-05 49 views
-1

我想填充一个数组而不知道它的大小。我用ArrayList来做到这一点NumberFormatException当填充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。为什么? 以及在从文件中读取字节期间是否有其他方法来填充阵列。

+6

'“”'不是有效的数字字符串。 –

+0

您应该使用'List bytes = new ArrayList ();',因为'ArrayList'是'List'的实现 - 与具体问题无关。 – Lion

回答

1

From the Java API:如果发生任何的 下列情况(parseByte方法概要)

NumberFormatException类型,则抛出异常:

  • 第一个参数是空值或零长度的字符串。
  • 基数小于Character.MIN_RADIX或大于Character.MAX_RADIX。
  • 字符串的任何字符不是指定基数的数字,所不同的是第一个字符可以是负号“ - ”提供 (“\ u002D”)为所述字符串比长度长1
  • 字符串表示的值不是字节类型的值。