2020-09-03-----Android----文件流存储读取方法

tech2023-09-11  99

利用文件流方式进行存储以及读取数据


一、存储

直接粗暴上代码:

public void save(String inputText) { FileOutputStream out = null; BufferedWriter writer = null; try { out = this.openFileOutput("data", Context.MODE_PRIVATE); //千万要注意一定要写个this! writer = new BufferedWriter(new OutputStreamWriter(out)); writer.write(inputText); } catch (IOException e) { e.printStackTrace(); } finally { try { if (writer != null) { writer.close(); } } catch (IOException e) { e.printStackTrace(); } } }

这段代码作用就是将一个文本信息保存下来,在安装的路径下有个data文件里面的内容就是我们保存的文本信息。 在这里注意的是,要养成加个this的习惯,像本人学习的某本书,因为没有加this,而本人由于工作需求需要改一个功能用到save方法,然后按照书上的代码原原本本地照抄下去,结果还是给我报个bug,浪费了几个小时的时间对比别人的代码发现在openFileOutput这里,别人是有this的,然后在工作的代码上改成context.openFileOutput完美解决问题!

二、读取

上代码:

public String load() { FileInputStream in = null; BufferedReader reader = null; StringBuilder content = new StringBuilder(); try { in = this.openFileInput("data"); //不要忘记加个this reader = new BufferedReader(new InputStreamReader(in)); String line = ""; while ((line = reader.readLine()) != null) { content.append(line); } } catch (IOException e) { e.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } return content.toString(); }

总结

这种数据流的存储经常用到的就是后台数据的保存,当我们退出一个活动,会将数据保存下来,当我们再开启这个活动时,直接读取这个数据! 那我们写代码的思路便是: 退出时保存数据:

@Override public void onDestroy() { super.onDestroy(); save( "要保存的数据" ); }

重新打开活动时读取数据:

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String input = load(); }

在活动的onCreate和onDestry生命周期里都是一行代码搞定!当然写得好代码的话还可以写一些判决条件!

最新回复(0)