本博客主要目的要区别一下两个方法的使用,可根据一下两张图片作比较
1)getCacheDir();//获取缓存目录
2)openFileOutput("data.txt",0);//创建一个数据文件
布局文件
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.smart.activity.MainActivity"> <Button android:id="@+id/cache_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="createCacheClick" android:text="创建缓存数据"/> <Button android:id="@+id/data_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="创建数据存储目录" android:onClick="createDataClick" android:layout_below="@id/cache_button"/> </RelativeLayout>
2.Activity文件MainActivity.java
package com.smart.activity; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } /** * 创建缓存目录 */ public void createCacheClick(View v) { File cachePath = getCacheDir();//获取缓存目录 //在这个目录保存的数据,可以通过系统-应用-清空缓存-可以把这些数据清除掉不适合放重要的数据 File file = new File(cachePath,"testcache.txt");//创建一个缓存文件 try { FileOutputStream fos = new FileOutputStream(file); fos.write("我是缓存的数据".getBytes()); fos.close(); } catch (Exception e) { e.printStackTrace(); } } /** * 创建数据目录 */ public void createDataClick(View v) { try { /** * 这种方式适合放一些比较重要的数据,可在系统-应用-清除数据-把数据清理掉 */ FileOutputStream fos = openFileOutput("data.txt",0);//创建一个数据文件 fos.write("我是缓存的数据".getBytes()); fos.close(); } catch (Exception e) { e.printStackTrace(); } } }