首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓文件I/O openFileInput()未定义

安卓文件I/O openFileInput()未定义
EN

Stack Overflow用户
提问于 2013-07-03 12:27:50
回答 2查看 16.6K关注 0票数 3
代码语言:javascript
复制
            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会出现一个错误,因为它是一个未定义的函数。我在想,也许我错过了一个入口?如果不是,那么一定有其他问题。

先谢谢你...

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-03 12:41:11

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

代码语言:javascript
复制
protected void onCreate(String filename,Context context) {
   try
     {
         FileInputStream fis = context.openFileInput(filename);  
         //...your code here...      
     }
   catch (Exception ex)
     {

     }
}

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

代码语言:javascript
复制
ImportOBJ obj_import=new ImportOBJ();
obj_import.onCreate(<File_Name_Here>,Your_Current_Activity_Name.this);
票数 10
EN

Stack Overflow用户

发布于 2013-07-03 12:34:10

如果错误是:

未为类型定义方法openFileInput(String) ...

你必须在一个Context.For示例中使用openFileInput Activity是一个Context.So如果你让你的类这么做,错误必须解决:

代码语言:javascript
复制
public class ImportOBJ extends Activity{
.
.
.

}

您可以查看What is Context in Android?以了解有关上下文的更多详细信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17439682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档