2013-02-05 71 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
  • 字符串表示的值不是字節類型的值。