LHS
@LHS

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

AndroidStudio Kotlin で ファイルの読み込み

解決したいこと

AndroidStudio Kotlin で

sdcard/download
にテキストファイル(sample.txt)を手動で入れmasu.
これをAndroidStudio Kotlin にて読み込んで TextView に表示させたいのですが
どうすればいいのでしょうか?
実はこのsample.txtは150行ほどあります。
utf-8です。

発生している問題・エラー

 openFileInput("memo.dat")
        .bufferedReader().forEachLine {
            str.append(it)
            str.append(System.getProperty("line.separator"))
        }

ではdata\data\Parojectname\data
に保存されますがここにはアクセスできません。

また、
Androidアプリ開発Kotlin編 秀和システム P470には
Androidではセキュリティーの理由から許可されたフォルダー以外のアクセスすると。例外が発生するようです。

IntelliJ IDEA では動いてもAndroidStudioに持ってくると動かないです。

書き込み

import java.io.File

fun main(args: Array<String>) {
    val fpath = "sample.txt"
    val f = File(fpath)

    runCatching {
        val re = f.readText(Charsets.UTF_8)
        println(re)
    }
    println("*** finished. ***")
}

読み込み

import java.io.File

fun main(args: Array<String>) {
    println("message: ")
    val s = readLine()?: ""
    val fpath = "sample.txt"
    val f = File(fpath)
    f.writeText(s)
    println("*** write '${s}' to file '${fpath}'.***")
}

よろしくお願します。

0

1Answer

今どきのスマホ事情から察するに、色々お伺いを立てて、ユーザに許可をしてもらうとかの考慮が必要なのでは?

0Like

Comments

  1. @LHS

    Questioner

    永続ファイルにアクセスするで
    val appSpecificExternalDir = File(context.getExternalFilesDir(null), filename)
    でcontentが赤くなるので[Alt]+[Enter]
    import kotlinx.coroutines.flow.internal.NoOpContinuation.context
    がインポートされるが
       NoOpContinuation が赤くなる。

    val appSpecificExternalDir: File = File(context.getExternalFilesDir(null), filename)
       content 赤いアンダーライン
       getExternalFilesDir が赤くなるので[Alt]+[Enter]
    renamereference

    全くわかりません。

  2. @LHS

    Questioner

    すいません。不出来なものですが、お願いします。

  3. そのcontextApplicationContextActivityContextのことだと思います。

Your answer might help someone💌