开发过程中遇到这个问题
java.lang.NumberFormatException:For input string:“12”
Caused by: java.lang.NumberFormatException: For input string: "12"
原因:读取的文件编码格式 并不是UTF-8的,是UTF-8 BOM编码格式的,才导致这个异常
异常如下:
Caused by: java.lang.NumberFormatException: For input string: "12"
at java.lang.Integer.parseInt(Integer.java:608)
at java.lang.Integer.parseInt(Integer.java:643)
at com.example.testdemo.MainActivity.test(MainActivity.java:34)
at com.example.testdemo.MainActivity.onResume(MainActivity.java:26)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1354)
at android.app.Activity.performResume(Activity.java:7079)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3620)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3685)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2898)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
android 开发时,assets目录中有一个abc.txt文件,读取字符串并解析成数字时,出现异常。上代码
public void test() {
try {
InputStream inputStream = this.getAssets().open("abc.txt");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String str = bufferedReader.readLine();
int aaa = Integer.parseInt(str);
Log.i(TAG, "test aaa: " + aaa);
} catch (IOException e) {
Log.e(TAG, "test: " + e.getMessage());
}
}
最终找到原因是abc的编码格式问题
右键文件,Remove BOM即可
再次运行代码 正常输出。
另外,Android Studio 4.0 新版使用介绍
窗口视图是代码模式,设计模式,代码设计模式 在这里调节。
Gradle编译使用离线模式,在这调节
java.lang.NumberFormatException:For input string:“undefined”
AndroidStudio非法字符: '\ufeff’解决