Android 如何";另存为;以编程方式通过按钮

Android 如何";另存为;以编程方式通过按钮,android,Android,在我的android应用程序中,我正在生成大量数据,目前存储在一个名为“logData”的.txt文件中。现在我的老板想让我给他一个可能性,把它另存为一个额外的文件,就像各种windows程序中的另存为按钮一样 目前,我有一个生成日志文件并将第一个数据写入其中的方法,还有一个用于将所有即将到来的数据写入其中的方法。但是如何实现“另存为”功能 这里是两种方法的代码和使用的变量: private String logData = "logData.txt"; private String logTe

在我的android应用程序中,我正在生成大量数据,目前存储在一个名为“
logData
”的.txt文件中。现在我的老板想让我给他一个可能性,把它另存为一个额外的文件,就像各种windows程序中的
另存为
按钮一样

目前,我有一个生成日志文件并将第一个数据写入其中的方法,还有一个用于将所有即将到来的数据写入其中的方法。但是如何实现“另存为”功能

这里是两种方法的代码和使用的变量:

private String logData = "logData.txt";
private String logText = "";
private File extStorageDir = Environment.getExternalStorageDirectory();
private File mLogFile = new File(extStorageDir, "DCULogData/logData.txt");
生成:

public void generateLogFileOnSD(String sFilename, String sBody) {
    try {
        File logFile = new File(extStorageDir, sFilename);
        FileWriter writer = new FileWriter(logFile);
        writer.append(sBody);
        writer.flush();
        writer.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
写作:

public void writeLogFileOnSD(String sFilename, String sBody) {

    if (mLogFile.exists()) {
        try {
            FileOutputStream fOut = new FileOutputStream(mLogFile);
            OutputStreamWriter mOutWriter = new OutputStreamWriter(fOut);
            mOutWriter.append(sBody);
            mOutWriter.close();
            fOut.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    } else {
        generateLogFileOnSD(logData, logText);
    }
}
编辑:这是我基于简单计划答案的解决方案。谢谢你

我还测试了一些文件名为“/blabla”、“m/m/m/m/”的场景。到目前为止未发现任何故障:)


首先将
按钮作为文本
另存为
添加到布局中,并实现
OnClickListner()

并使用如下所示的
最终文件名

File folder = new File(Environment.getExternalStorageDirectory(), "DCULogData");
File mLogFile = new File(folder.getPath(), final_filename);
并在
manifest.xml
文件中添加
permission

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


是否可以另存为?给我另一种格式的名称,你想用在保存asI我想要一个按钮,当我点击它,它会打开一个小对话框,我可以输入一个文件名,当我按下ok,它保存我的数据到一个txt文件与给定的名称…哦。。。我刚刚得到了一个关于我可以尝试的线索:)thx到你的问题@Simple Plantry根据我的回答:我现在正在测试:)但听起来是个不错的解决方案,尽管在我的14英寸显示屏上读到这里有点奇怪:)@Fraggles如果你有疑问,请告诉我。好的,我也应该在这里发布我的确切答案吗?只是为了说明解决方案的代码是什么?
File folder = new File(Environment.getExternalStorageDirectory(), "DCULogData");
File mLogFile = new File(folder.getPath(), final_filename);
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />