FileInputStream上的NullPointerException

时间:2013-06-05 09:22:27

标签: java android nullpointerexception fileinputstream

在我的Android应用程序中,有一个代码在服务中使用,必须将文件中的信息读入字符串。我从这里获取了代码https://stackoverflow.com/a/9095665/2448623

   public String readSavedData ( ) {
    String datax = "" ;
    String FILENAME = "TeleportSAASPass.txt";
    if(datax != null){
    try {
        FileInputStream fIn = openFileInput ( FILENAME ) ;
        InputStreamReader isr = new InputStreamReader ( fIn ) ;
        BufferedReader buffreader = new BufferedReader ( isr ) ;

        String readString = buffreader.readLine ( ) ;
        while ( readString != null ) {
            datax = datax + readString ;
            readString = buffreader.readLine ( ) ;
        }

        isr.close ( ) ;
    } catch ( IOException ioe ) {
        ioe.printStackTrace ( ) ;
    }
    }
    return datax ;
}

我使用此值以Toast的形式向用户显示信息 MainActivity.java

String UserInfo = gps.readSavedData();
Toast.makeText(getApplicationContext(), UserInfo, Toast.LENGTH_LONG).show();

但是当我尝试执行此功能时,我得到了

的值
java.lang.NullPointerException
com.teleport.saas.GPSTracker.readSavedData(GPSTracker.java:294)

变量在MainActivity.java中定义

// GPSTracker class
GPSTracker gps;

如何解决此错误?

2 个答案:

答案 0 :(得分:0)

好的,所以gps是GPSTracker类的一个对象。您需要使用new来初始化它。

GPSTracker gps = new GPSTracker();

我假设GPSTracker.java是您创建的文件。所以从技术上讲,你应该在类中定义readSavedDate()方法。 还要记得在清单中添加ACCESS_FINE_LOCATION和其他必要的权限。

查看本教程了解详细信息: http://www.androidhive.info/2012/07/android-gps-location-manager-tutorial/

希望这会有所帮助。干杯!

答案 1 :(得分:0)

openFileInput( FILENAME );是您设计的方法吗?如果是,它可能会抛出错误,您应该检查它。如果没有,请阅读有关此功能的android文档,它应告诉您在哪种情况下失败。 你确定你的文件存在吗?