我有一个文本文件,其中前两行是整数m
和n
,然后有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 /系统区域设置已更改。以前被视为数字的数字,不再是新语言环境中的数字。具有区域设置的典型捕获数是数千个分隔符(,)。