当前位置: 代码迷 >> Android >> 安卓 从文件读取时出了什么问题?
  详细解决方案

安卓 从文件读取时出了什么问题?

热度:33   发布时间:2023-08-04 12:25:45.0
public class ReadFromFile extends Activity{

    public String readFromFile(String file) {

        String ret = "";

        try {
            InputStream inputStream = openFileInput(file);

            if (inputStream != null) {
                InputStreamReader inputStreamReader = new InputStreamReader(
                        inputStream);
                BufferedReader bufferedReader = new BufferedReader(
                        inputStreamReader);
                String receiveString = "";
                StringBuilder stringBuilder = new StringBuilder();

                while ((receiveString = bufferedReader.readLine()) != null) {
                    stringBuilder.append(receiveString);
                }

                inputStream.close();
                ret = stringBuilder.toString();
            }
        } catch (FileNotFoundException e) {
            Log.d("File not found: ", "");
        } catch (IOException e) {
            Log.d("Can not read file: ", "");
        }

        return ret;
    }
}

03-09 22:17:56.181: W/dalvikvm(14108): threadid=1: thread exiting with uncaught exception (group=0x40caf450)
03-09 22:17:56.261: E/AndroidRuntime(14108): FATAL EXCEPTION: main
03-09 22:17:56.261: E/AndroidRuntime(14108): java.lang.NullPointerException
03-09 22:17:56.261: E/AndroidRuntime(14108):    at android.content.ContextWrapper.openFileInput(ContextWrapper.java:159)
03-09 22:17:56.261: E/AndroidRuntime(14108):    at com.example.anewapp.ReadFromFile.readFromFile(ReadFromFile.java:19)
03-09 22:17:56.261: E/AndroidRuntime(14108):    at com.example.anewapp.MainActivity$6.onClick(MainActivity.java:287)
03-09 22:17:56.261: E/AndroidRuntime(14108):    at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
03-09 22:17:56.261: E/AndroidRuntime(14108):    at android.os.Handler.dispatchMessage(Handler.java:99)
03-09 22:17:56.261: E/AndroidRuntime(14108):    at android.os.Looper.loop(Looper.java:137)
03-09 22:17:56.261: E/AndroidRuntime(14108):    at android.app.ActivityThread.main(ActivityThread.java:4802)
03-09 22:17:56.261: E/AndroidRuntime(14108):    at java.lang.reflect.Method.invokeNative(Native Method)
03-09 22:17:56.261: E/AndroidRuntime(14108):    at java.lang.reflect.Method.invoke(Method.java:511)
03-09 22:17:56.261: E/AndroidRuntime(14108):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:813)
03-09 22:17:56.261: E/AndroidRuntime(14108):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:580)
03-09 22:17:56.261: E/AndroidRuntime(14108):    at dalvik.system.NativeStart.main(Native Method)

我建议以下内容:

让您的MainActivity 扩展 ReadFromFile:

public class MainActivity extends ReadFromFile { 

然后像这样调用readFromFile方法

readFromFile("setting.txt");

代替:

ReadFromFile clr = new ReadFromFile();   
String input = clr.readFromFile("setting.txt");

注意:我还建议将ReadFromFile重命名为ReadFileActiviy ,以使其更清楚地表明它是活动

  相关解决方案