我正在尝试创建app,我需要保存字符串,就像AppInventor中的TinyDB一样。所以,我发现那里http://developer.android.com/guide/topics/data/data-storage.html#filesInternal我正在寻找的是将数据保存到内部存储器,但我不知道如何阅读它。他们说:
从内部存储中读取文件:
调用openFileInput()并将其传递给要读取的文件的名称。这将返回一个FileInputStream。
使用read()从文件中读取字节。
然后用close()
但我不知道如何,我的代码永远无法运作。所以我用谷歌搜索了如何从内部存储读取,没有代码工作。你能告诉我,如何从内部存储中读取文本? :)
这是代码:
EditText tagbox = (EditText)findViewById(R.id.editText1);
String tag = tagbox.toString();
Context context = getApplicationContext();
FileInputStream fis = context.openFileInput( tag );
InputStreamReader in = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(in);
String data = br.readLine();
Toast.makeText(getApplicationContext(), data, Toast.LENGTH_LONG).show();
好的,所以我找到了解决方案。存储数据的最简单方法,如AppInventor中的TinyDB,使用SharedPreferences:
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
Edtior editor = preferences.edit();
存储数据:
editor.putString("key", "value");
阅读数据:
String value = preferences.getString("key");
答案 0 :(得分:0)
File selectedFile = new File(path + "/" + selectedFromList + ".txt");
FileInputStream fstream = null;
ArrayList sal = new ArrayList();
try {
fstream = new FileInputStream(selectedFile);
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String strLine;
//Read File Line By Line
while ((strLine = br.readLine()) != null) {
// Print the content on the console
sal.add(strLine);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//Close the input stream
try {
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 1 :(得分:0)
好的,所以我找到了解决方案。存储数据的最简单方法,如AppInventor中的TinyDB,正在使用SharedPreferences:
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
Edtior editor = preferences.edit();
存储数据:
editor.putString("key", "value");
阅读数据:
String value = preferences.getString("key");