Android File I/O openFileInput() undefined

16,582

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.

Share:
16,582
Eae
Author by

Eae

I program in LISP for AutoCAD. Java for the Android OS and also in other misc. script languages.

Updated on June 27, 2022

Comments

  • Eae
    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...