openFileInput——从文件中读取数据
来源:互联网 发布:js点击函数 编辑:程序博客网 时间:2024/05/24 00:13
类似于将数据存放到文件之中,Context类还有一个openFileInput方法,用于从文件中读取数据,他只接收一个参数,就是文件名,系统会自动到data/data//files目录下加载这个文件,并返回一个FileInputStream对象。拥有了这个对象之后就可以通过java流的方式读取数据了,修改MainActivity代码:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); edit = (EditText) findViewById(R.id.edit); String inputText = load(); if (!TextUtils.isEmpty(inputText)) { edit.setText(inputText); edit.setSelection(inputText.length()); Toast.makeText(this, "Restoring succeeded", Toast.LENGTH_LONG).show(); } }
首先我们定义了字符串引并指向load方法的返回值,之后判断文件是否为空使用了TextUtils类,详细用法,他专门用来对字符串进行操作,这里判断是否为空。如果不为空,那么就向edit这个控件中输入值inputText,然后调用setSelection方法对光标进行控制,我们想让光标放在字符串的最后以方便用户输入,所以参数是inputText.length()。最后发送一条Toast表示操作成功。
然后编写load方法使它能够返回文件的数据:
public String load() { FileInputStream in = null; BufferedReader reader = null; StringBuilder content = new StringBuilder(); try { in = openFileInput("data"); 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(); }
首先指定了FileInputStream类、StringBuilder类与BufferedReader类的引用,用文件名data作为参数传入openFileInput得到FileInputStream的引用in,然后把BufferedReader的引用reader指向创建的BufferedReader实例,他的构造函数传入参数是新创建的InputStreamReader实例,而InputStreamReader构造函数的参数又是给那才得到的引用in。
现在开始向edit中传递数据,我们一行一行的进行传输,首先初始化一行的数据为空,接着利用readLine方法读取换行符之前的数据,之后用append方法将line中的内容进行拼接加入到content中,一行一行的拼接直到读完整个文件,最后返回content.toString(),就可以把文件中的数据返回给load方法调用者,最终放到EditText里。
- openFileInput——从文件中读取数据
- 【封装】ReadFromFile——从文件中读取数据
- 从文件中读取数据
- 从文件中读取数据
- 从文件中读取数据
- 使用openFileOutput和openFileInput读取文件
- 第十五周上机实践项目——工资数据的输入(从文件中读取数据)
- 从资源读取数据到文件中
- 从XML文件中读取数据
- MATLAB:从fig文件中读取数据
- MFC 从文件中读取整数数据
- 从fig文件中读取数据
- 从本地JSON文件中读取数据
- Qt 从csv文件中读取数据
- vc++从txt文件中读取数据
- Unity3D -- 从excel文件中读取数据
- 如何从property文件中读取数据
- 从xml文件中读取出数据
- Python 列表解析
- SGU 200 Cracking RSA(高斯消元+高精度)
- JavaScript获取数组最小两项之和
- SpringMVC Controller 介绍
- C++ 引用MFC问题
- openFileInput——从文件中读取数据
- 洛谷 P1631 序列合并
- 修改代码的艺术 读书笔记(二,修改现有代码的四种技巧)
- 音效单例类的实现和调用
- HDU 2962
- python学习——编写web框架
- An investigation into defense against SPIT
- 2016/8/8 [个人网站] 学习第八天
- c++学习笔记(初学)