Android 文件操作

仰天大笑出门去,我辈岂是蓬蒿人。这篇文章主要讲述Android 文件操作相关的知识,希望能为你提供帮助。
      http://www.cnblogs.com/LiHuiGe8/p/5604725.html   读取Assets中的文件数据 在asset目录下的资源是无法直接访问的原生资源,但是这个目录保存的文件可以打包在程序里,android应用通过Assetmanager来管理该目录下的原始资源. Android不为Assets下的文件生成id,如要使用assets里的文件,需要指定文件的路径和文件名。 代码使用示例: (1)在assets中创建文件:info.txt文件内容为:1,这是使用UTF-8编写的一个文本2,这是第二行代码3,3行4,4行

//读取的内容会随着文件的改变而改变 try { //读取的是字节流 InputStream is=getResources().getAssets().open("info.txt"); //UTF-8编码的指定是很重要的 InputStreamReader isr=new InputStreamReader(is,"UTF-8"); BufferedReader bfr=new BufferedReader(isr); String in=""; while((in=bfr.readLine())!=null) { Log.i(TAG, in); } //Log.i(TAG, bfr.readLine()); } catch (IOException e) { e.printStackTrace(); }

【Android 文件操作】 
三、读取raw目录中的文件数据 如果你想要将静态文件保存在您的应用程序在编译时,将文件保存在您的项目res/raw/目录。Android  SDK会处理该目录下原始资源,并会在R清单类中为该目录下的资源生成一个索引项。 你可以打开它与openRawResource(),通过R.raw.< filename> 的资源  id。此方法返回的InputStream,您可以使用读取该文件  (但你不能写入原始文件)。
InputStream is=getResources().openRawResource(R.raw.info); InputStreamReader isr=new InputStreamReader(is,"UTF-8"); BufferedReader bfr=new BufferedReader(isr); String instring=""; while((instring=bfr.readLine())!=null) { Log.i(TAG, instring); }

四、读写内部存储的文件数据 程序一旦在虚拟机或真机运行后,程序就会在固定地方创建一个文件夹。 应用程序的数据文件默认位置保存在:/data/data/< package  name> /files  目录下。< package  name> 代表应用程序的包名。       FileInputStream  openFileInput(String  name):打开应用程序的数据文件夹下的name文件对应输入流。FileOutputStream  openFileOutput(String  name,int  mode):打开应用程序的数据文件夹下的name文件对应输出流。参数:mode    指定打开文件的模式,该模式支持如下值:          MODE_PRIVATE  :该文件只能被当前程序读写。          MODE_APPEND:以追加方式打开该文件,应用程序可以向该文件中追加内容。          MODE_WORLD_READABLE:该文件的内容可以被其他应用程序读取。          MODE_WORLD_WRITEABLE:该文件的内容可由其他程序读、写。   getDir(String  name,int  mode):在应用程序的数据文件夹下获取或创建name对应的子目录。   File  getFilesDir():获取该应用程序的数据文件夹的绝对路径。   String[]  fileList():返回该应用程序中的数据文件夹下的全部文件。   deleteFile(String):删除该应用程序的数据文件夹下的指定文件。   2,文件的创建、删除、重命名//创建文件的名称public  static  final  String  FILE_NAME="myFile.txt"; (1)创建文件代码示例:File  file=new  File(FileUtil.FILE_NAME);                 //文件是否存在                if(!file.exists())                {                        try  {                                //文件不存在,就创建一个新文件                                file.createNewFile();                                 System.out.println("文件已经创建了");                         }  catch  (IOException  e)  {                                e.printStackTrace();                         }                }                else                {                        System.out.println("文件已经存在");                         System.out.println("文件名:"+file.getName());                         System.out.println("文件绝对路径为:"+file.getAbsolutePath());                         //是存在工程目录下,所以                        System.out.println("文件相对路径为:"+file.getPath());                         System.out.println("文件大小为:"+file.length()+"字节");                         System.out.println("文件是否可读:"+file.canRead());                         System.out.println("文件是否可写:"+file.canWrite());                         System.out.println("我呢间是否隐藏:"+file.isHidden());                 }   (2)删除文件示例:File  file=new  File(FileUtil.FILE_NAME);                 //文件是否存在                if(file.exists())                {                        file.delete();                         System.out.println("文件已经被删除了");                 }   (3)为文件重命名示例:File  file=new  File(FileUtil.FILE_NAME); File  newFile=new  File("anotherFile.txt"); file.renameTo(newFile); System.out.println("文件已经成功地被命名了"+file.getName());           注意:当我们为文件重命名时,仅仅操作的是文件本身,内部的内容不会改变。   2,文件夹的创建和删除//创建文件夹的名称//public  static  final  String  FOLDER_NAME="NewFolder"; //多级目录,不能用/        /*          *  File.separator路径分隔符          *  在文件夹的目录结构中,只要任一级目录不存在,那么都会不存在。          *  比如"NewFolder2"+File.separator+"separator2"此路径,NewFolder2没有存在,          *  所以NewFolder2和separator2都不存在          *  */        public  static  final  String  FOLDER_NAME=                        "NewFolder"+File.separator+"separator";   (1)创建文件夹代码示例File  folder=new  File(FileUtil.FOLDER_NAME);                 if(!folder.exists())                {                        //创建文件夹,一旦存在相同的文件或文件夹,是不可能存在的。                        /*                          *  *  在文件夹的目录结构中,只要任一级目录不存在,那么都会不存在。                          *  比如"NewFolder2"+File.separator+"separator2"此路径,NewFolder2没有存在,                          *  所以NewFolder2和separator2都不存在                          *  *///                        folder.mkdir();                         /*                          *  不管路径是否存在,都会慢慢向下一级创建文件夹。                          *  所以创建文件夹我们一般用此方法,确定稳定性。                          *  */                        folder.mkdirs();                 }File同时可以表示文件或文件夹   (2)删除文件夹        File  folder=new  File(FileUtil.FOLDER_NAME);                 if(folder.exists())                {                        /*                          *  在移除的时候,只会移除最下层的目录,不会移除多层目录。                          *  */                        folder.delete();                 }    

    推荐阅读