【问题标题】:java.lang.numberformatexception invalid int ""java.lang.numberformatexception 无效 int ""
【发布时间】:2013-12-09 21:09:06
【问题描述】:

尝试编写将从文件中读取数字作为字符串然后将其转换为 int 的代码。出于某种原因尝试从字符串转换为 int 时,代码会崩溃。

代码在 Android 活动的 onCreate 函数中执行。 当 sample.txt 为空时代码运行良好,但当 sample.txt 文件的第一行中有任何数字时会崩溃并返回以下错误:

" java.lang.numberformatexception 无效 int "" "

public static int LastScore;
public File sdcard = Environment.getExternalStorageDirectory();
public File file = new File(sdcard,"sample.txt");


    try{
        BufferedReader br = new BufferedReader(new FileReader(file));
            String line = null;
            line = br.readLine();
         if(line!=null){
                LastScore = Integer.parseInt(line);
                       }

    }catch (IOException e){
        System.err.println(e);
    }

sample.txt 当前在其第一行包含数字“2”。

任何帮助将不胜感激。

编辑:代码现在可以工作了。添加了对原始代码的调整。 感谢您的帮助。

【问题讨论】:

    标签: java android text io


    【解决方案1】:

    你给readLine()打了两次电话;一次在 `if` 条件下,一次在下一行。

    因此,line第二 行。

    【讨论】:

      【解决方案2】:

      @SLaks 的意思是你应该把这些行:

      line = br.readLine();
      LastScore = Integer.parseInt(line);
      

      以相反的顺序并更改 if,例如:

      line = br.readLine();
      if(line  != null){ 
          LastScore = Integer.parseInt(line);
          line = br.readLine();
      }
      

      干杯。

      【讨论】:

      • 这仍然意味着有 2 次 readLine() 调用。你的代码不是他说的那样。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-29
      • 1970-01-01
      • 2016-02-05
      • 1970-01-01
      • 1970-01-01
      • 2013-09-11
      • 1970-01-01
      相关资源
      最近更新 更多