【发布时间】:2018-03-11 16:06:35
【问题描述】:
我正在尝试在内部存储中创建一个目录,然后将我的文件写入该目录中。 我可以在内部存储中创建目录,但它没有显示。
当我在该目录中创建新文件并写入该文件时,我收到空指针异常错误。 File.createNewFile() 方法被忽略,我的文件没有被创建。 我正在使用 printwriter 写入文件并使用缓冲读取器读取。 如何读写内部存储中的文件?
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_exercise_monday);
//Creating directory and file
File internalPath = Environment.getDataDirectory();
myDir = new File("/data/", "Directory");
if(!myDir.exists()) {
myDir.mkdir();
Log.d(TAG, "Dir created");
}
monExerciseFile = new File(myDir, "Work_Monday.txt");
if(!monExerciseFile.exists()) {
try {
boolean a = monExerciseFile.createNewFile();
//monExerciseFile.createNewFile(); I have tried this statement also
Log.d(TAG, "File created");
} catch (IOException e) {
e.printStackTrace();
Log.d(TAG, "File not created");
}
}
//Printwriter
try {
printWriter = new PrintWriter(monExerciseFile);
} catch (IOException e) {
e.printStackTrace();
}
//Setting toolbar for monday activity
Toolbar toolbar = (Toolbar) findViewById(R.id.app_bar_monday);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
toolbar.setTitle(R.string.exercise_monday);
}
}
public void addExercise(View view) {
EditText et = (EditText) findViewById(R.id.m_child_et_1);
String exerciseToBeWritten = String.valueOf(et.getText());
printWriter.println(exerciseToBeWritten);
try{
BufferedReader br = new BufferedReader(new FileReader(monExerciseFile));
Log.d("ExerciseMonday.class", br.readLine());
}catch(Exception e){
e.printStackTrace();
}
}
错误
原因:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void java.io.PrintWriter.println(java.lang.String)”
【问题讨论】:
-
请发布您的代码和确切的错误信息。
标签: android storage file-handling