我有一个文本文件,如下所示:
1574683 Abyssinia
8546279 Royal_Oak
2454438 Oceanway
9146578 Atilgan
3378841 Albatros
6562152 Imbat
1000085321 N N
1000255963 N N
1000511926 N N
1000853210 N N
1001279815 N N
1001791741 N N
1002388988 N N
1003071556 N N
1003839445 N N
...
此文本文件代表一个端口。前6行是6艘船的IMO编号及其名称。其余的是容器。有632个容器。端口是一个对象,它将容器和船只(也是对象)保存为两个独立的对象arraylists。这是我尝试从文本文件中提取数据:
Scanner inputFileReader = null;
try {
inputFileReader = new Scanner(new File("C:\\Users\\Asus\\Documents\\NetBeansProjects\\NesneProjesi\\src\\\\liman.txt"));
String line;
String[] lineCutter;
//Gemi yeniGemi = null; //---declare your arraylist-containing object here.
while (inputFileReader.hasNextLine()){
line = inputFileReader.nextLine();
if(line.length() > 7){
lineCutter = line.split(" ");
if(lineCutter[0].length()== 7){
int imo = Integer.valueOf(lineCutter[0]);
String isim = lineCutter[1];
Gemi yeniGemi = new Gemi(imo,isim);
liman.Gemiler.add(yeniGemi);
}else if(lineCutter[0].length() == 10){
int ser= Integer.valueOf(lineCutter[0]);
String Konteyner_Ozelligi= lineCutter[1];
String Icerik_Ozelligi= lineCutter[2];
Konteyner yeniKonteyner = new Konteyner(ser,Konteyner_Ozelligi,Icerik_Ozelligi);
liman.Lkonteynerler.add(yeniKonteyner);
}
}
}
} catch (Exception e) {
//e.printStackTrace();
} finally {
//System.out.println(liman.Lkonteynerler);
inputFileReader.close();
return liman.Gemiler;
}
此代码提供此错误:
java.lang.NumberFormatException:对于输入字符串:“2182634381”
该数字位于第172行。它从那时起就不会读取任何内容。我不知道为什么它在那之前有效,而不是在之后。如果您需要更多信息,我会提供。任何帮助表示赞赏。
答案 0 :(得分:0)
对于整数,最大数为:2147483648,最小数为-2147483648,其中2 ^ 31
如果要输入大于2147483648的数字,则应使用“long”而不是“int”