Android File I/O openFileInput() undefined
Solution 1
for accessing openFileInput
method in non Activity class you will need to pass Activity Context to it by sending Context using parametrized method or using ImportOBJ
class constructor as:
protected void onCreate(String filename,Context context) {
try
{
FileInputStream fis = context.openFileInput(filename);
//...your code here...
}
catch (Exception ex)
{
}
}
and from your Activity pass context as:
ImportOBJ obj_import=new ImportOBJ();
obj_import.onCreate(<File_Name_Here>,Your_Current_Activity_Name.this);
Solution 2
If error is :
The method openFileInput(String) is undefined for the type ...
You have to use openFileInput
in a Context
.For example an Activity
is a Context
.So if you cahnge your class to this,error must be solve:
public class ImportOBJ extends Activity{
.
.
.
}
You can see What is Context in Android?
for more details on Context.
Eae
I program in LISP for AutoCAD. Java for the Android OS and also in other misc. script languages.
Updated on June 27, 2022Comments
-
Eae almost 2 years
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 ""; } } }
I am looking at an example of File I/O for Android. I am wondering why openFileInput is coming up with an error as being an undefined function. I was thinking that maybe I missed an import? If not then there must be some other problem.
Thanks in advance...