转 Android - 文件操作

一、资源文件的读取:

 1) 从resource的raw中读取文件数据:

String res = ""; 

try{ 



//得到资源中的Raw数据流

InputStream in = getResources().openRawResource(R.raw.test);



//得到数据的大小

int length = in.available();



byte [] buffer = new byte[length];



//读取数据

in.read(buffer);



//依test.txt的编码类型选择合适的编码,如果不调整会乱码 

res = EncodingUtils.getString(buffer, "BIG5"); 



//关闭 

in.close();



}catch(Exception e){ 

e.printStackTrace(); 

}

2) 从resource的asset中读取文件数据

String fileName = "test.txt"; //文件名字 

String res=""; 

try{ 



   //得到资源中的asset数据流

   InputStream in = getResources().getAssets().open(fileName); 



   int length = in.available();         

   byte [] buffer = new byte[length];        



   in.read(buffer);            



   res = EncodingUtils.getString(buffer, "UTF-8");     



  }catch(Exception e){ 



      e.printStackTrace();         



   } 

二、读写/data/data/<应用程序名>目录上的文件:

//写数据

public void writeFile(String fileName,String writestr{ 

  try{ 



        FileOutputStream fout =openFileOutput(fileName, MODE_PRIVATE); 



        byte [] bytes = writestr.getBytes(); 



        fout.write(bytes); 



        fout.close(); 

      } 



        catch(Exception e){ 

        e.printStackTrace(); 

       } 

} 



//读数据

public String readFile(String fileName){ 

  String res=""; 

  try{ 

         FileInputStream fin = openFileInput(fileName); 

         int length = fin.available(); 

         byte [] buffer = new byte[length]; 

         fin.read(buffer);     

         res = EncodingUtils.getString(buffer, "UTF-8"); 

         fin.close();     

     } 

     catch(Exception e){ 

         e.printStackTrace(); 

     } 

     return res; 



}   

三、读写SD卡中的文件。也就是/mnt/sdcard/目录下面的文件 :

//写数据到SD中的文件

public void writeFileSdcardFile(String fileName,String write_str){ 

 try{ 



       FileOutputStream fout = new FileOutputStream(fileName); 

       byte [] bytes = write_str.getBytes(); 



       fout.write(bytes); 

       fout.close(); 

     }



      catch(Exception e){ 

        e.printStackTrace(); 

       } 

   } 



  

//读SD中的文件

public String readFileSdcardFile(String fileName){ 

  String res=""; 

  try{ 

         FileInputStream fin = new FileInputStream(fileName); 



         int length = fin.available(); 



         byte [] buffer = new byte[length]; 

         fin.read(buffer);     



         res = EncodingUtils.getString(buffer, "UTF-8"); 



         fin.close();     

        } 



        catch(Exception e){ 

         e.printStackTrace(); 

        } 

        return res; 

} 

 

 

你可能感兴趣的:(android)