-3

我正在尝试制作应用程序,我需要保存字符串,就像 AppInventor 中的 TinyDB 一样。所以,我在那里找到http://developer.android.com/guide/topics/data/data-storage.html#filesInternal我正在寻找的是将数据保存到内部存储,但我不知道如何阅读。他们说:

从内部存储读取文件:

  1. 调用 openFileInput() 并将要读取的文件的名称传递给它。这将返回一个 FileInputStream。

  2. 使用 read() 从文件中读取字节。

  3. 然后用 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");
4

2 回答 2

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();
        }
于 2013-07-11T08:49:05.747 回答
0

好的,所以我找到了解决方案。存储数据的最简单方法,如 AppInventor 中的 TinyDB,是使用 SharedPreferences:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);

Edtior editor = preferences.edit();

存储数据:

editor.putString("key", "value");

读取数据:

String value = preferences.getString("key");
于 2014-06-15T15:18:47.110 回答