保存数据文件到本地时发生错误(问题已解决,但是如有可能麻烦大佬指教原理qwq)

发生的错误:
存储字符串到本地文件失败,本地文件能成功创建,但是打开之后文件是空的。

错误代码如下:

public class MainActivity extends AppCompatActivity {private EditText edtTitle;private Button btnSave;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//lock screen(ben lai shizai shangyiju shangmian)setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);edtTitle = (EditText)findViewById(R.id.edtTitle);btnSave = (Button)findViewById(R.id.btnSave);/* 获取输入内容,并存储到本地*  默认文件夹是data/data/com.example.notebook/files* */btnSD Save = new btnSD();btnSave.setOnClickListener(Save);}class btnSD implements View.OnClickListener{String title = edtTitle.getText().toString();String date = edtDate.getText().toString();String note = edtMain.getText().toString();String allnote = title+'\n'+date+'\n'+note;@Overridepublic void onClick(View view) {switch(view.getId()){case R.id.btnSave:Savetoyournote(allnote);break;}}public void Savetoyournote(String data) {FileOutputStream out = null;try {title = edtTitle.getText().toString();out = openFileOutput(title, MODE_PRIVATE);out.write(data.getBytes());out.flush();// 清理缓冲区的数据流out.close();// 关闭输出流texSubmit.setText(allnote);} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}}

更正:

class btnSD implements View.OnClickListener{@Overridepublic void onClick(View view) {switch(view.getId()){case R.id.btnSave:Savetoyournote();break;}}public void Savetoyournote() {FileOutputStream out = null;try {String title = edtTitle.getText().toString();String date = edtDate.getText().toString();String note = edtMain.getText().toString();String data = title+'\n'+date+'\n'+note;out = openFileOutput(title, MODE_PRIVATE);out.write(data.getBytes());out.flush();// 清理缓冲区的数据流out.close();// 关闭输出流} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}

问题应该出在字符串的读取与传递,
OnClick那个函数里不知道为什么读取不了title的text值,读出来就是空的。
改到Savetoyournote()函数里就行了。

改正过程主要就是以下代码位置的改变

String title = edtTitle.getText().toString();
String date = edtDate.getText().toString();
String note = edtMain.getText().toString();
String data = title+'\n'+date+'\n'+note;

【ps.这本来是个记事本app,为了方便看这个问题,我删除了部分代码。
记事本全部代码可见我上传的资源。
主要实现功能如下:使用EditText输入标题,内容,选择日期,并建立本地数据可进行保存,并显示在当前页面。】


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部