【问题标题】:Saving files internal内部保存文件
【发布时间】:2013-04-16 11:09:13
【问题描述】:

当我遇到以下代码时,我正在关注来自 Google 的关于保存文件的 Android 教程:

String filename = "myfile";
String string = "Hello world!";
FileOutputStream outputStream;

try {
  outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
  outputStream.write(string.getBytes());
  outputStream.close();
} catch (Exception e) {
  e.printStackTrace();
}

“openFileOutput”给出一个错误说是“未定义”所以我创建了一个

Context fileContext;

在相同的方法上,但它给出了一个错误,说我应该初始化它。我应该如何初始化它?或者我应该在类中声明它,因为如果我将它从方法中取出并在类中声明它不会给我一个错误。

我的代码:

public class DataManager
{
private static DataManager _instance;
private Context fileContext;
public String[] arraySentences;

private DataManager()
{}

public static DataManager getInstance()
{
    if (_instance == null)
    {
        _instance = new DataManager();
    }

    return _instance;
}

public void saveSentences(String jsonData)
{
    String filename = "myfile";
    FileOutputStream outputStream;

    try
    {
        outputStream = fileContext.openFileOutput(filename, Context.MODE_PRIVATE);
        outputStream.write(jsonData.getBytes());
        outputStream.close();
    } 
    catch (Exception e)
    {
        e.printStackTrace();
    }
}
}

【问题讨论】:

  • 你把这段代码放在哪里,发布你的完整代码
  • 你的类应该扩展 Activity。或者它需要从活动中获取上下文
  • 我正在构建一个单例,而不是一个活动。我不应该扩展到活动。

标签: android file save output


【解决方案1】:

试试这个方法..

public void createFile(Context c) throws IOException{
     String FILENAME = timeStamp();
     String string = "hello world!";

     FileOutputStream fos = c.openFileOutput(FILENAME, Context.MODE_PRIVATE);
    fos.write(string.getBytes());
    fos.close();


}

调用上述方法

createFile(myActivity.this);

【讨论】:

  • 就我而言,我想接收要保存的字符串。
  • 我将什么作为上下文传递?
  • 您的活动名称如:createFile(myActivityname.this);或使用 getapplicationcontext();
  • 好的,遇到了麻烦。
【解决方案2】:

假设您在扩展 Context 的类(如 Activity)中声明此方法,因此您可以在不声明任何附加 Context 对象的情况下调用它。

问候。

【讨论】:

  • 我可能错过了。
猜你喜欢
  • 2014-12-22
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 2015-01-31
  • 2012-03-16
  • 2013-02-19
  • 2011-10-10
  • 2012-10-21
相关资源
最近更新 更多