当用户点击保存按钮时,应该创建一个文本文件,并且内容应该存储在文件中,但是当我这样做时,我的应用程序就会崩溃。
public class newfile extends Activity {
public EditText textBox,textbox2;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.newfile);
Button save = (Button) findViewById(R.id.btnSave);
save.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
textBox = (EditText) findViewById(R.id.txtText1);
textbox2 = (EditText) findViewById(R.id.fname);
String FILENAME = textbox2.getText().toString();
String value = textBox.getText().toString();
File("R.raw",value);
FileOutputStream fos=null ;
fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
try {
fos.write(((String) value).getBytes());
fos.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void File(String string, String value) {
// TODO Auto-generated method stub
}
private FileOutputStream openFileOutput(String fILENAME,
int modePrivate) {
// TODO Auto-generated method stub
return null;
}
});
}
}
答案 0 :(得分:2)
openFileOutput返回null?也许这就是你的应用程序崩溃的原因?
答案 1 :(得分:1)
删除此行...
File("R.raw",value);
删除这些方法......
private void File(String string, String value) {
// TODO Auto-generated method stub
}
private FileOutputStream openFileOutput(String fILENAME,
int modePrivate) {
// TODO Auto-generated method stub
return null;
}
环绕这条线......
fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
...使用try/catch
块就像这样......
try {
fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
答案 2 :(得分:0)
使用getFilesDir()获取应用程序的绝对路径,并使用它在应用程序文件夹中创建文件。 否则,您无权在任何地方创建文件。
http://developer.android.com/reference/android/content/Context.html#getFilesDir()