【问题标题】:Read From Local Storage Function Android Studio从本地存储功能 Android Studio 中读取
【发布时间】:2022-02-25 12:39:10
【问题描述】:

我对 Android Studio 还是很陌生,我到处寻找有关在 Android Studio 中使用 Kotlin 时如何写入/读取数据的线索。我将以下功能放在一起,但每次运行时应用程序都会崩溃。我在这里做错了什么?

私人乐趣 readFromFile(fileName: String): String? {

    var myData: String? = ""
    var fileInputStream: FileInputStream? = null

    try {
        fileInputStream = openFileInput(fileName)
        var inputStreamReader: InputStreamReader = InputStreamReader(fileInputStream)

        if(inputStreamReader != null) {
            val bufferedReader: BufferedReader = BufferedReader(inputStreamReader)
            val stringBuilder: StringBuilder = StringBuilder()
            while (run {
                    myData = bufferedReader.readLine()
                    myData
                } != null){
                stringBuilder.append("\n").append(myData)
            }
            inputStreamReader.close()
            myData = stringBuilder.toString()
        }

    } catch (e: IOException){
        e.printStackTrace()
    }
    return myData
}

这是我得到的错误:

2022-02-23 20:12:49.309 2927-2927/com.example.mydrink E/AndroidRuntime: 致命异常: main 进程:com.example.mydrink,PID:2927 java.lang.RuntimeException:无法启动活动 ComponentInfo{com.example.mydrink/com.example.mydrink.MainActivity}:java.lang.NumberFormatException:对于输入字符串:“ 32" 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3449) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601) 在 android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) 在 android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 在 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) 在 android.os.Handler.dispatchMessage(Handler.java:106) 在 android.os.Looper.loop(Looper.java:223) 在 android.app.ActivityThread.main(ActivityThread.java:7656) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 引起:java.lang.NumberFormatException:对于输入字符串:“ 32" 在 java.lang.Integer.parseInt(Integer.java:604) 在 java.lang.Integer.parseInt(Integer.java:650) 在 com.example.mydrink.MainActivity.onCreate(MainActivity.kt:29) 在 android.app.Activity.performCreate(Activity.java:7994) 在 android.app.Activity.performCreate(Activity.java:7978) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422) ... 11 更多

【问题讨论】:

  • 你应该分享你的崩溃报告

标签: android


【解决方案1】:

事实证明这确实按预期工作。我遇到了一个问题,我将输出值转换为整数,而代码不喜欢我的做法。所以这段代码确实可以从文件中读取。

【讨论】:

    猜你喜欢
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-16
    • 1970-01-01
    相关资源
    最近更新 更多