Android:如何在内存上存储数据?

时间:2010-09-02 14:23:01

标签: android file-io java-io fileoutputstream

完美地描述here怎么做,唯一的问题是:他不知道函数openFileOutput();

private void saveSettingsFile() {
          String FILENAME = "settings";
          String string = "hello world!";

          FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE); //openFileOutput underlined red
          try {
            fos.write(string.getBytes());
            fos.close();
          } catch (IOException e) {
            Log.e("Controller", e.getMessage() + e.getLocalizedMessage() + e.getCause());
          }
}

这些是我导入的相关软件包:

import java.io.FileOutputStream;
import java.io.IOException;
import android.content.Context;

4 个答案:

答案 0 :(得分:2)

从dev.android.com上的示例中查看使用FileOutputStrem的this example。它应该让你知道如何正确使用它。

答案 1 :(得分:1)

声明此方法的类被定义为“静态”。这就是为什么它会抛出错误。从类定义和宾果游戏中删除静态...

答案 2 :(得分:0)

只需添加一个“try catch”块并将它们置于此之间。

像这样:

    private void saveSettingsFile(String FILENAME, String data) {

    FileOutputStream fos;
    try {
        fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
        fos.write(data.getBytes());
        fos.close();
    } catch (FileNotFoundException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    } // openFileOutput underlined red
    catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

当线下有红线时。首先检查该线是否在句号的正下方(即等号后)。

如果它覆盖整行,那么它必须修复一些错误..

或者如果它只在句子的右侧...那么它必须要处理一些异常事件。

如果你不知道它可能产生什么类型的例外......
不要害怕,只需在try块中编写所有代码(try {})然后添加一个catch并在catch中传递一个Exception对象..现在很好..

像这样:

  try
  {
    ...........your code
    ......
  } 
   catch(Exception e)
  {
   e.printstacktrace();

  }

现在一切都很好。

谢谢

答案 3 :(得分:0)

openFileOutput是Context对象的一种方法。并且不要忘记添加finally子句来关闭流。贝娄就是一个例子(由于Android,因为Java 6有点笨拙)。

String data = "Hello";
FileOutputStream fos = null;
try {
    fos = mContext.openFileOutput(FILENAME, Context.MODE_PRIVATE);
    fos.write(data.getBytes(Charset.defaultCharset()));
} catch (IOException e) {
    e.printStackTrace();
} finally {
    if (fos != null) {
        try {
            fos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

mContext变量应该在上面的某处定义,如果你在一个活动里面,就像mContext = getApplicationContext()一样初始化