Android系统下的文件,可以分为两类:
一类是共享的文件,如存储在SD卡上的文件,这种文件任何Android应用都可以访问。SD卡的路径在/mnt/sdcard下
另外一类是私有文件,即Android应用自己创建的文件。私有文件的路径在/data/data/应用的包名下
基本操作:
1.创建文件:File.createNewFile()
2.创建文件夹:File.mkdir()
3.在已存在的文件夹下再创建子文件夹:
File file = new File("New" + File.separator + "Sub");//New文件夹已存在
file.mkdir();
4.直接创建多层的文件夹:
File file = new File("New2" + File.separator + "Sub2");//New2文件夹不存在
file.mkdirs();
如果New2文件夹存在,则在New2文件夹的基础上继续创建,处于安全性的考虑,最好都用mkdirs
1.读取assets中的txt文件
try { //在Android Studio中,assets文件夹要建立在main文件夹下 //即与java、res文件夹同级 InputStream is = getAssets().open("test/Info.txt"); InputStreamReader isr = new InputStreamReader(is, "GBK"); BufferedReader br = new BufferedReader(isr); String s; while ((s = br.readLine()) != null) { Log.i("txt", s); } } catch (IOException e) { Log.i("txt","wrong"); }
InputStream is = getResources().openRawResource(R.raw.hello);
3.读写内部储存的文件数据
写入:
try { FileOutputStream fos = openFileOutput("test", Context.MODE_PRIVATE); OutputStreamWriter osw = new OutputStreamWriter(fos,"GBK"); osw.write("nihao啊"); osw.close(); fos.close(); Toast.makeText(getApplication(),"finish",Toast.LENGTH_SHORT).show(); } catch (Exception e) { e.printStackTrace(); }
在Android Studio中点击Android Device Monitor,即可打开DDMS.然后选择File Explorer,在data/data目录下可以找到该程序的目录
执行后会发现程序目录下多了一个files文件夹,存放着写入的文件.选中文件后,点击右上方的按钮即可将文件拉到电脑上.
读取:
try { FileInputStream fis = openFileInput("test"); InputStreamReader isr = new InputStreamReader(fis,"GBK"); char[] a = new char[fis.available()]; isr.read(a); isr.close(); fis.close(); String s = new String(a); Log.i("text",s); } catch (Exception e) { e.printStackTrace(); }
4.读写外部储存的文件数据(sd卡,存储路径在mnt/sdcard)
添加权限:
<!-- 在SD卡中创建与删除文件权限--> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <!-- 往SD卡写入数据权限--> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
写入:
File sdcard = Environment.getExternalStorageDirectory(); File file = new File(sdcard, "myFile.txt"); if (!sdcard.exists()) { Toast.makeText(getApplicationContext(), "当前系统不具备SD卡目录", Toast.LENGTH_SHORT).show(); } else { try { file.createNewFile(); Toast.makeText(getApplicationContext(), "文件已经创建完成", Toast.LENGTH_SHORT).show(); FileOutputStream fos = new FileOutputStream(file); OutputStreamWriter osw = new OutputStreamWriter(fos,"GBK"); osw.write("nihao世界啊"); osw.close(); fos.close(); Toast.makeText(getApplicationContext(), "文件已经写入完成", Toast.LENGTH_SHORT).show(); } catch (IOException e) { e.printStackTrace(); }
读取:
File sdcard = Environment.getExternalStorageDirectory(); File file = new File(sdcard, "myFile.txt"); if (!sdcard.exists()) { Toast.makeText(getApplicationContext(), "当前系统不具备SD卡目录", Toast.LENGTH_SHORT).show(); } else { try { FileInputStream fis = new FileInputStream(file); InputStreamReader isr = new InputStreamReader(fis, "GBK"); char[] a = new char[fis.available()]; isr.read(a); isr.close(); fis.close(); String s = new String(a); Log.i("text",s); } catch (IOException e) { e.printStackTrace(); }
5.SharedPreferences(存储路径在/data/data/包名/shared_prefs)
只支持boolean int float long String数据类型
写入:
//SharedPreferences用于读取数据 SharedPreferences sharedPreferences = getPreferences(MainActivity.MODE_PRIVATE); //Editor用于写入数据 Editor editor = sharedPreferences.edit(); editor.putString("key","value"); if(editor.commit()) Toast.makeText(getApplicationContext(),"写入成功",Toast.LENGTH_SHORT).show();
读取:
//SharedPreferences用于读取数据 SharedPreferences sharedPreferences = getPreferences(MainActivity.MODE_PRIVATE); //Editor用于写入数据 Editor editor = sharedPreferences.edit(); String s = sharedPreferences.getString("key","defaultValue"); Toast.makeText(getApplicationContext(),s,Toast.LENGTH_SHORT).show();
6.SQLite
http://www.cnblogs.com/Excellent/archive/2011/11/19/2254888.html