【问题标题】:Using the Internal Storage使用内部存储
【发布时间】:2011-10-06 15:08:07
【问题描述】:

在我的应用程序中,我有一个链接列表(类型列表), 每次用户启动应用程序时,我都想从内部存储中恢复列表(如果内部存储中有保存的文件)或创建一个新列表(稍后保存)。

如何使用读/写函数(在 FileInputStream/FileOutputStream 上)来做到这一点?

【问题讨论】:

  • :我认为您已经发布了一个类似的问题:保存/恢复数据 ==> stackoverflow.com/questions/7665339/…
  • @Houcine 不同的是,我按照预览帖子中的建议阅读了开发人员指南上的文档,但实际问题是如何使用这些读/写功能。例如 read 返回一个 int,如何使用它来恢复已保存的 List...
  • @Belgi 你好。从 Q 到 Q,似乎你真正感兴趣的是 SharedPreferences
  • 参考这个问题并告诉我它是否有帮助:stackoverflow.com/questions/4519820/…
  • @Laurent'- SharedPreferences 不是仅适用于原始数据吗? (感谢您的帮助!)

标签: android


【解决方案1】:

参考这个问题,它是关于如何保存对象 使用 SharedPreferences : how android SharedPreferences save/store object ?

编辑:参考这个one,它是关于如何使用内部存储来保存/恢复对象

【讨论】:

  • 我看不出那篇文章有什么帮助:它是关于将对象从一个活动转移到另一个活动......
【解决方案2】:
//save file into internal 
try {
                    URL url = new URL("your url");
                     java.io.BufferedInputStream in = new java.io.BufferedInputStream(url.openStream());

                       FileOutputStream fos ;
                       fos = openFileOutput("test11.xml",Context.MODE_WORLD_WRITEABLE);
                        java.io.BufferedOutputStream bout = new BufferedOutputStream(fos,1024);
                        byte[] data = new byte[1024];
                        int x=0;
                        while((x=in.read(data,0,1024))>=0){
                            bout.write(data,0,x);               
                        }
                        fos.flush();
                        bout.flush();
                        fos.close();
                        bout.close();
                        in.close();

                    fos.close();

                    Toast.makeText(
                            AndroidInternalStorageActivity.this, 
                            fileName + " saved", 
                            Toast.LENGTH_LONG).show();

                } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

//List of internal files                
 void ShowSavedFiles(){
        SavedFiles = getApplicationContext().fileList();
        Log.e("file path is :",Arrays.toString(SavedFiles));
        ArrayAdapter<String> adapter
        = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1,
                SavedFiles);

        listSavedFiles.setAdapter(adapter);
    }

//Delete internal file 

    File dir = getFilesDir();
        File file = new File(dir, "test.xml");
        Log.e("file path : ",file.toString());
        boolean deleted = file.delete();
        if(deleted)
        {
            Log.e("delete ","true");
        }
        else
        {
            Log.e("delete","false");
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多