每次打开应用程序时,都会在Android sdcard0中动态保存.txt文件



我收到一些人的语音记录。我想给他们身份证。我正在尝试在Android sdcard0中保存一个.txt文件,该文件包含新的id值。

我的意思是,我为新人打开申请。程序从txt文件中读取最后一个id值。然后将+1值添加到新人的id中,并更新.txt文件的内容。

稍后我关闭应用程序。然后,我再次打开应用程序,读取最后一个id值,并用person id+1保存另一个人的语音。我想在每次打开应用程序时动态更新Android sdcard0内存中.txt文件id的内容。

我该怎么做?请帮帮我。这是我的简单代码。

enter cod private String Load() {
String result = null;;
String FILE_NAME = "counter.txt";
    String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath() + "/" + "Records";
    File file = new File(baseDir, FILE_NAME);
   int counter = 0;
    StringBuilder text = new StringBuilder();
    try {
        FileReader fReader = new FileReader(file);
        BufferedReader bReader = new BufferedReader(fReader);
        //.....??....
        }
        result = String.valueOf(text);
    } catch (IOException e) {
        e.printStackTrace();
    }
return result;

}

如果我理解正确的话,每次打开应用程序时都要将lastid+1添加到文本文件中。你也想在你的Sd卡上存储和编辑这个文件!

有三个步骤可以尝试并实现这一点:

  1. 从文件中读取
  2. 查找最后添加的id
  3. 将新id写入文本文件
//Find the directory for the SD Card using the API
//*Don't* hardcode "/sdcard"
File sdcard = Environment.getExternalStorageDirectory();
//Get the text file
File file = new File(sdcard, "counter.txt");
//Read text from file
StringBuilder text = new StringBuilder();
try {
    BufferedReader br = new BufferedReader(new FileReader(file));
    String lastLine = "";
    while ((sCurrentLine = br.readLine()) != null) 
    {
        lastLine = sCurrentLine;
    }
    br.close();
    //Parse the string into an actual int.
    int lastId = Integer.parseInt(lastLine);

    //This will allow you to write to the file
    //the boolean true tell the FileOutputStream to append
    //instead of replacing the exisiting text
    outStream = new FileOutputStream(file, true);
    outStreamWriter = new OutputStreamWriter(outStream); 
    int newId = lastId + 1;
    //Write the newId at the bottom of the file!
    outStreamWriter.append(Integer.toString(newId));
    outStreamWriter.flush();
    outStreamWriter.close();
}
catch (IOException e) {
    //You'll need to add proper error handling here
}

写入SD卡等外部存储需要在Android Manifest中获得特殊权限,只需添加

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

这样就可以了!

参考资料请查看以下链接:

如何在Android中读取文本文件?

如何使用java读取文本文件中的最后一行

安卓保存到SD卡作为文本文件

将文本附加到文件的末尾

如果您只需要持久的基元数据,例如保存/加载一个int值,您应该使用android共享偏好机制:共享偏好示例

相关内容

  • 没有找到相关文章

最新更新