2013-07-03 43 views
3
  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作爲一個未定義的函數出現錯誤。我在想,也許我錯過了一次進口?如果不是,那麼一定有其他問題。Android文件I/O openFileInput()undefined

在此先感謝...

+0

你有沒有得到有效的文件意味着「xyz.txt」你寫onCreate()..我敢肯定這是用戶定義的方法 – Sam

回答

10

在非活動類訪問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); 
+0

哇!是的,看起來不錯! – Giuseppe

+0

@ρяσѕρєяK男人請幫助! http://stackoverflow.com/questions/17421506/how-to-parse-same-name-tag-in-android-xml-dom-parsing – Altair

1

如果錯誤是:

的方法openFileInput(字符串)是未定義的類型......

你必須使用openFileInput在一個Context。例如一個Activity是一個Context。所以,如果你cahnge你的課到這,錯誤必須解決:

public class ImportOBJ extends Activity{ 
. 
. 
. 

} 

有關上下文的更多詳細信息,您可以看到What is Context in Android?

+0

你是什麼意思在上下文中使用它。我還不明白答案。 – Giuseppe

+0

@ user2209542請再次查看我的答案。我添加一些細節。 – hasanghaforian

+0

這對我來說現在更清楚了。我不確定我想要一個完整的活動,但我明白你的意思?我的目標是讓我可以在一個活動中實例化ImportOBJ,並傳遞一個文件名並獲得一個數組。 – Giuseppe