抛出NumberFormatException

抛出NumberFormatException

我有一个文本文件,其中前两行是整数mn,然后有m行,每行具有n管道分隔值。我编写了一个程序,该程序读取文件并使用文件中的值创建m*n数组,并且在数以十亿计的情况下都可以正常工作,然后突然用相同的代码和相同的文件将其抛出NumberFormatException同时从第一行读取整数。整个代码在这里:

public class Thegame extends JFrame {
    public Integer st;
    public Integer el;
    public String[][] tab;

    public Thegame(String pth)
    {
        setSize(640,480);
        setTitle(pth);
        File file = new File(pth);
        try
        {
            BufferedReader rdr = new BufferedReader(new FileReader(file));
            st = Integer.valueOf(rdr.readLine());
            el = Integer.valueOf(rdr.readLine());
            tab = new String[st][el];
            for(Integer i=0; i<st; i++)
            {
                String lin = rdr.readLine();
                StringTokenizer spl = new StringTokenizer(lin,"|");
                for(Integer j=0; j<el; j++)
                {
                    tab[i][j] = spl.nextToken();
                }
            }
            rdr.close();
        }
        catch(Exception ex)
        {
            JOptionPane.showMessageDialog(null, ex);
        }
    }
}


真正让我担心的是,相同的代码在没有结果的情况下仍然可以正常工作,结果证明它是不好的,所以我什至不知道到底是什么错误。

最佳答案

某些东西必须改变,否则就是魔术。可能的嫌疑人:


输入文件的内容已更改。您是否已使用某种十六进制编辑器对其进行了检查。文件确实以数字开头吗?
Java /系统区域设置已更改。以前被视为数字的数字,不再是新语言环境中的数字。具有区域设置的典型捕获数是数千个分隔符(,)。

10-01 13:49