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)
答案 0 :(得分:0)
我建议如下:
让您的MainActivity 扩展 ReadFromFile:
public class MainActivity extends ReadFromFile {
然后调用readFromFile方法就像这样
readFromFile("setting.txt");
而不是:
ReadFromFile clr = new ReadFromFile();
String input = clr.readFromFile("setting.txt");
注意:我还建议将ReadFromFile
重命名为ReadFileActiviy
,以便更清楚地表明它是一项活动