首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

android中IO操作数据小结

2012-10-18 
android中IO操作数据总结package com.ghg.IOimport java.io.ByteArrayOutputStreamimport java.io.File

android中IO操作数据总结

package com.ghg.IO;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import android.app.Activity;import android.content.res.AssetManager;import android.os.Bundle;import android.os.Environment;import android.os.FileObserver;public class Day1404_IOActivity extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        /*         * 1.创建并返回一个目录,在这个目录下存储应用程序的数据文件         * 输出结果为: getFilesDir():/data/data/com.ghg.IO/files         */       File dir= getFilesDir();       System.out.println("getFilesDir():"+dir.toString());        /*         * 2.创建并返回一个目录,在这个目录下存储应用程序的缓冲文件,当系统资源不足时,系统清除这下面的文件         * 输出结果为:dir2=/data/data/com.ghg.IO/cache         */       File dir2=getCacheDir();       System.out.println("dir2="+dir2.toString());       /*        * 3.创建并返回一个指定名称的目录,在这个目录下来存些东西        * 输出结果为:dir3=/data/data/com.ghg.IO/app_abc        */       File dir3=getDir("abc", MODE_PRIVATE);       System.out.println("dir3="+dir3.toString());        /*         * 4.用于返回数据库中指定名字的文件路径,在内部存储中应该保存的路径;         * 输出结果为:dir4=/data/data/com.ghg.IO/databases/stu.db         */       File dir4=getDatabasePath("stu.db");       System.out.println("dir4="+dir4.toString());       /*        * 5.打开一个输出流对象,通过这个输出流对象可以向abc.txt文件中写入一些数据,        * abc.txt文件位于/data/data/com.ghg.IO/files下;        */       try {FileOutputStream  out=openFileOutput("abc.txt", MODE_PRIVATE);out.write("gao hong guo jiajia".getBytes());out.flush();out.close();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}             /*         * 6.获取一个输入流对象,通过这个输入流对对象读取指定文件,这个文件在/data/data/com.ghg.IO/files下;         */              try {FileInputStream is=openFileInput("abc.txt");ByteArrayOutputStream out=new ByteArrayOutputStream();int len=0;byte[] buf=new byte[4];while((len=is.read(buf))>0){out.write(buf, 0, len);out.flush();}out.close();is.close();System.out.println(out.toString());} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}             /*         *7. 获取内部存储的数据目录         * 输出结果是:dir7=/data         */       File dir7=Environment.getDataDirectory();       System.out.println("dir7="+dir7.toString());        /*         * 8.获取内部存储下载缓冲目录,隐藏的目录;         * 输出结果为:dir8=/cache         */       File dir8=Environment.getDownloadCacheDirectory();       System.out.println("dir8="+dir8.toString());        /*         * 9.获取内部下载系统的根目录         * 输出结果为:dir9=/system         */       File dir9= Environment.getRootDirectory();       System.out.println("dir9="+dir9.toString());       /*        * 10.创建并返回外部存储文件目录,需要sd卡的的写入数据权限;        * 输出结果是:dir10=/mnt/sdcard/Android/data/com.ghg.IO/files/Music        */       File dir10=getExternalFilesDir(Environment.DIRECTORY_MUSIC);       System.out.println("dir10="+dir10.toString());       /*        * 11.创建并返回外部存储缓冲目录,需要sd卡的写入数据权限;        * 输出结果是:dir11=/mnt/sdcard/Android/data/com.ghg.IO/cache        */      File dir11= getExternalCacheDir();      System.out.println("dir11="+dir11.toString());      /*       * 12.返回sdcard的根目录;       * 结果: dir12=/mnt/sdcard       */      File dir12=Environment.getExternalStorageDirectory();      System.out.println("dir12="+dir12.toString());      /*       * 13.返回sdcard公共存储目录;       * 结果:dir13=/mnt/sdcard/Music       */      File dir13=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC);      System.out.println("dir13="+dir13.toString());      /*       * 14.返回sdcard的状态,每次使用sdcard时,都会检查其状态;       * 结果:status=mounted       */      String status=Environment.getExternalStorageState();      System.out.println("status="+status);           /*      * 15.对源生资源的访问,在assets下放一个stu.db,读取并写入内部存储数据文件目录下;      */      File dir1=getDatabasePath("stu.db");      if (!dir1.exists()) {if (!dir1.getParentFile().exists()) {dir1.getParentFile().mkdir();}AssetManager manager=getAssets();try {InputStream in=manager.open("stu.db");FileOutputStream out=new FileOutputStream(dir1);int len=0;byte[] buf=new byte[512];while ((len=in.read(buf))>0){out.write(buf, 0, len);out.flush();}in.close();out.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}          }}


热点排行