如何在Android中编写并不断更新文本文件

dy1byipe  于 2023-03-16  发布在  Android
关注(0)|答案(1)|浏览(145)

我有一个相机,我正在抓取像素值,我想把它们写入一个文本文件。Android 12的最新更新要求我使用存储访问框架,但问题是它不是动态的,我需要不断选择文件目录。所以,这种方法成功地创建了我的文件,但当写入它时,我需要专门选择它将保存到的目录,这对我来说是不可行的,因为温度是针对每一帧和每一个像素获取的。我的温度值在temperature1数组中,我想知道如何一致地将temperature1的值添加到文本文件中?
编辑:我试着用getExternalFilesDir()创建一个文本文件:

private String filename = "myFile.txt";
  private String filepath = "myFileDir";
    public void onClick(final View view) {
        switch (view.getId()){
            case R.id.camera_button:
                synchronized (mSync) {
                    if (isTemp) {
                        tempTureing();
                        fileContent = "Hello, I am a saved text inside a text file!";
                        if(!fileContent.equals("")){
                            File myExternalFile = new File(getExternalFilesDir(filepath), filename);
                            FileOutputStream fos = null;
                            try{
                                fos = new FileOutputStream(myExternalFile);
                                fos.write(fileContent.getBytes());
                            } catch (Exception e) {
                                e.printStackTrace();
                            }
                            Log.e("TAG", "file: "+myExternalFile);
                        }
                        isTemp = false;
                        //Log.e(TAG, "isCorrect:" + mUVCCamera.isCorrect());
                    } else {
                        stopTemp();
                        isTemp = true;
                    }
                }
                break;

我实际上可以一直走到路径/storage/emulated/0/Android/data/com.MyApp.app/files/myFileDir/,但奇怪的是,这个目录中没有myFile.txt这样的文件,为什么呢?

kmbjn2e3

kmbjn2e31#

工作溶液:

public void WriteToFile(String fileName, String content){
    File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);
    File newDir = new File(path + "/" + fileName);
    try{
        if (!newDir.exists()) {
            newDir.mkdir();
        }
        FileOutputStream writer = new FileOutputStream(new File(path, filename));
        writer.write(content.getBytes());
        writer.close();
        Log.e("TAG", "Wrote to file: "+fileName);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

相关问题