【发布时间】:2016-05-30 15:23:56
【问题描述】:
我想要可以从应用程序中的任何位置调用以写入文件的 make 机制。
我下一节课:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import android.content.Context;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import android.app.Activity;
import android.os.Environment;
import android.util.Log;
import android.content.Context;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class LogFile extends Activity {
public void writeFile(String msg)
{
Log.d("writeFile", "writeToFile");
try {
Context context = getApplicationContext();
FileOutputStream fos = context.openFileOutput("log.txt", Context.MODE_PRIVATE);
OutputStreamWriter osw = new OutputStreamWriter(fos);
BufferedWriter outputStream = new BufferedWriter(osw);
outputStream.write(msg);
outputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
Log.d("writeFile", "File not found");
} catch (NullPointerException e) {
e.printStackTrace();
Log.d("writeFile", "NullPointerException");
} catch (IOException e) {
e.printStackTrace();
Log.d("writeFile", "File problems");
}
}
}
但是在这一行
Context context = getApplicationContext();
我有错误
W/System.err: java.lang.NullPointerException
W/System.err: at android.content.ContextWrapper.openFileOutput(ContextWrapper.java:185)
W/System.err: at com.example.tracklogger.LogFile.writeFile(LogFile.java:37)
【问题讨论】:
-
捕获 NullPointerExceptions 通常意味着你做错了什么......但是,我不知道为什么 getApplicationContext 会导致一个
-
试试这个....代码行... Context context = LogFile.this;
-
你从哪里调用这个方法? Activity 是在那个时候开始的吗?
-
这是一个活动,我看不到您在哪里覆盖 onCreate()。还应该提到您可能会考虑扩展 AppCompatActivity
-
@ExceptionLover 这没有意义,这段代码是 LogFile 的一部分。这是一个上下文。
标签: java android nullpointerexception android-context