如何将数据保存在内部或外部目录中?

How to save data in internal or external directory?

java.io.IOException: 没有那个文件或目录

我想将传感器数据保存在 .csv 数据中,但我总是收到此错误。有人可以帮忙吗???

 fun onStop(view: View){

    sensorManager.unregisterListener(this)
    val fileName = "Accelerometer $time.csv"
    var data = _accelerometerStringBuilder.toString()

  
   
    var fileWriter: FileWriter? = null

    var myExFile = File(getExternalFilesDir("/storage/emulated/0"),fileName)
    File.createTempFile("Accelerometer $time", "csv", myExFile)

    fileWriter = FileWriter(fileName)
    fileWriter.appendLine(CSV_HEADER)
    fileWriter.appendLine(data)
    fileWriter.close()


    var myExternalFile2:File = File(getExternalFilesDir("/storage/emulated/0"),"Gyroscope $time.csv")
    File.createTempFile("Gyroscope $time", "csv", myExternalFile2)

    fileWriter = FileWriter("Gyroscope $time.csv")
    fileWriter.appendLine(CSV_HEADER)
    fileWriter.appendLine(_gyroscopeStringBuilder.toString())
    fileWriter.close()


}

试试这个:

fun onStop(view: View) {
        sensorManager.unregisterListener(this)
        val fileAcc = File(PathUtils.getExternalAppFilesPath(),"Accelerometer $time.csv")
        FileIOUtils.writeFileFromString(fileAcc,_accelerometerStringBuilder.toString(),true)
        FileIOUtils.writeFileFromString(fileAcc,CSV_HEADER,true)

        val fileGyro = File(PathUtils.getExternalAppFilesPath(),"Gyroscope $time.csv")
        FileIOUtils.writeFileFromString(fileGyro,_gyroscopeStringBuilder.toString(),true)
        FileIOUtils.writeFileFromString(fileGyro,CSV_HEADER,true)
    }

这个库让事情变得更简单:implementation 'com.blankj:utilcodex:1.29.0'

权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

为确保文件已成功创建,请转至 phone > 文件管理器应用 > 搜索栏 > 搜索 time.csv,您将在此处看到已创建的文件