Android文件I / O openFileInput()未定义

时间:2013-07-03 04:27:50

标签: android file-io

            package com.example.tictactoeshowgrid;

            import android.os.Bundle;
            import java.io.*;
            import android.widget.Toast;
            import android.content.*;

            import java.io.FileInputStream;
            import java.io.FileNotFoundException;
            import java.io.FileOutputStream;
            import java.io.IOException;
            import java.util.Date;

            import android.content.Context;

                public class ImportOBJ {

                protected void onCreate(String filename) {
                    try
                    {
                        FileInputStream fis = openFileInput(filename);
                        BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
                        String line = null, input="";
                        while ((line = reader.readLine()) != null)
                            input += line;
                        reader.close();
                        fis.close();
                        //toast("File successfully loaded.");
                        //return input;
                    }
                    catch (Exception ex)
                    {
                        //toast("Error loading file: " + ex.getLocalizedMessage());
                        //return "";
                    }
                }
            }

我正在查看Android的文件I / O示例。我想知道为什么openFileInput会出现一个错误,因为它是一个未定义的函数。我在想,也许我错过了一个导入?如果没有,则必然存在其他问题。

提前致谢...

2 个答案:

答案 0 :(得分:10)

要访问非Activity类中的openFileInput方法,您需要通过使用参数化方法发送Context或使用ImportOBJ类构造函数将活动上下文传递给它:

protected void onCreate(String filename,Context context) {
   try
     {
         FileInputStream fis = context.openFileInput(filename);  
         //...your code here...      
     }
   catch (Exception ex)
     {

     }
}

并从您的活动传递上下文中:

ImportOBJ obj_import=new ImportOBJ();
obj_import.onCreate(<File_Name_Here>,Your_Current_Activity_Name.this);

答案 1 :(得分:1)

如果错误是:

  

对于类型...

,未定义openFileInput(String)方法

您必须在Context中使用openFileInput。例如,ActivityContext。因此,如果您将类改为此类,则必须解决错误:

public class ImportOBJ extends Activity{
.
.
.

}

有关上下文的更多详细信息,请参阅What is Context in Android?