栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android 存储:Internal Storage的用法以及与External storage 的区别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android 存储:Internal Storage的用法以及与External storage 的区别

其它相关:


如果想在编译时就在应用程序中保存一个不允许修改的文件,就把这个文件保存在/res/raw/目录下。

在程序中打开这个文件可以调用openRawResource(int id)方法, 里面的参数id表示R.raw.,

这个方法打开后会返回一个InputStream,使用它可以读取这个文件。这个文件不能被执行写入操作。

如果有缓存文件需要保存,而这些文件并不需要永久保存,可以调用getCacheDir()方法,

该方法执行后会在内部存储器的/data/data//目录下创建一个名为cache/的空目录(或打开cache/目录),

并返回一个File对象指向这个(空)文件夹。在这个cache/目录下,可以保存缓存文件,

当设备的内部存储器空间不够用时,系统会自动删除一部分cache/目录下的缓存文件,但为了保证系统运行效率,

应该手动对cache/目录的大小进行控制,如控制它不能大于1M。当用户卸载应用程序时,cache/目录
会连同一起被删除。

例:调用getCacheDir()方法,该方法执行后会在内部存储器的/data/data//目录下创建一个名为cache/的空目录。

利用一个登录界面演示,java代码如下

===================

InternalDataWriteActivity:


public class InternalDataWriteActivity extends AppCompatActivity {

private Button mLoginBtn;
private EditText mUsernameET, mPasswordET;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_shared_preferences_write);
    initViews();
    mLoginBtn.setonClickListener(new View.onClickListener() {
        @Override
        public void onClick(View v) {
            String username = mUsernameET.getText().toString();// 获得用户名
            String password = mPasswordET.getText().toString();// 获得密码
            FileOutputStream fos = null;
            try {
                fos = openFileOutput("login", MODE_PRIVATE);// 获得文件输出流
                fos.write((username + " " + password).getBytes());// 保存用户名和密码
                fos.flush();// 清除缓存
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (fos != null) {
                    try {
                        fos.close();// 关闭文件输出流
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
            Intent intent = new Intent();// 创建Intent对象
            // 指定跳转到SharedPreferencesReadActivity
            intent.setClass(InternalDataWriteActivity.this, InternalDataReadActivity.class);
            startActivity(intent);// 实现跳转
        }
    });
}
private void initViews() {
    mLoginBtn = (Button) findViewById(R.id.btn_login);
    mUsernameET = (EditText) findViewById(R.id.et_username);
    mPasswordET = (EditText) findViewById(R.id.et_password);
}

}

InternalDataReadActivity:


public class InternalDataReadActivity extends AppCompatActivity {

private TextView mUsernameTV,mPasswordTV;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_shared_preferences_read);
    initViews();
    FileInputStream fis = null;
    byte[] buffer = null;
    try {
        fis = openFileInput("login");// 获得文件输入流
        buffer = new byte[fis.available()];// 定义保存数据的数组
        fis.read(buffer);// 从输入流中读取数据
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (fis != null) {
            try {
                fis.close();// 关闭文件输入流
            } catch (IOException e) {
                e.printStackTrace();

e.printStackTrace();

    } finally {
        if (fis != null) {
            try {
                fis.close();// 关闭文件输入流
            } catch (IOException e) {
                e.printStackTrace();
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/709985.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号