中途获取错误,从文本文件

时间:2017-12-17 22:23:29

标签: java

我有一个文本文件,如下所示:

  

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行。它从那时起就不会读取任何内容。我不知道为什么它在那之前有效,而不是在之后。如果您需要更多信息,我会提供。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

对于整数,最大数为:2147483648,最小数为-2147483648,其中2 ^ 31

如果要输入大于2147483648的数字,则应使用“long”而不是“int”