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会出现一个错误,因为它是一个未定义的函数。我在想,也许我错过了一个入口?如果不是,那么一定有其他问题。
先谢谢你...
发布于 2013-07-03 12:41:11
要在非Activity类中访问openFileInput方法,您需要通过使用参数化方法发送上下文或使用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);发布于 2013-07-03 12:34:10
如果错误是:
未为类型定义方法openFileInput(String) ...
你必须在一个Context.For示例中使用openFileInput Activity是一个Context.So如果你让你的类这么做,错误必须解决:
public class ImportOBJ extends Activity{
.
.
.
}您可以查看What is Context in Android?以了解有关上下文的更多详细信息。
https://stackoverflow.com/questions/17439682
复制相似问题