我试图在不知道其大小的情况下填充数组。我用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。为什么? 如果在从文件读取字节期间有任何其他方法来填充数组。
答案 0 :(得分:1)
From the Java API:(parseByte方法摘要)
如果有任何类型,则抛出NumberFormatException类型的异常 发生以下情况:
- 第一个参数为null或是一个长度为零的字符串。
- 基数小于Character.MIN_RADIX或大于Character.MAX_RADIX。
- 字符串的任何字符都不是指定基数的数字,除了第一个字符可能是减号' - ' ('\ u002D')规定字符串长度超过1。
- 字符串表示的值不是byte类型的值。