У меня есть текстовый файл, в котором первые две строки являются целыми числами m
и n
, тогда есть m
строк, каждая из которых имеет n
значения, разделенные линией. Я написал программу, которая читает файл и создает массив m*n
со значениями из файла, и он работал отлично для bajillion раз, а затем из неожиданного, с тем же кодом, с тем же файлом, он бросил NumberFormatException
, читая целое число из первой строки. Весь код здесь:Java throws 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);
}
}
}
Что действительно меня беспокоит то, что тот же код работал нормально до и из ниоткуда оказалось плохо, так что я даже не могу сказать, что именно не так ...
Какая строка вызывает исключение NumberFormatException? – templatetypedef
Да, не могли бы вы опубликовать трассировку стека с Исключением? Кроме того, копия файла, который вы читаете. – Argote
Я уверен, что «без причины» - очень сильное утверждение ... Можете ли вы сделать несколько простых System.out.println в строках, которые вы пытаетесь проанализировать? (результаты rdr.readLine())? – chahuistle