Chinaunix首页 | 论坛 | 博客
  • 博客访问: 207927
  • 博文数量: 102
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1015
  • 用 户 组: 普通用户
  • 注册时间: 2013-06-05 16:45
文章存档

2014年(73)

2013年(29)

我的朋友

分类: Android平台

2014-04-06 17:08:23

Mp3Player(11) FileUtils 读写外部存储卡类

点击(此处)折叠或打开

  1. //FileUtils.java 读写外部存储卡类
  2. package com.lwb.utils;

  3. import java.io.File;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6. import java.io.InputStream;
  7. import java.io.OutputStream;
  8. import java.util.ArrayList;
  9. import java.util.List;

  10. import com.lwb.model.Mp3Info;

  11. import android.os.Environment;

  12. /*FileUtils
  13.  * 1、一创建FileUtils类就 首先获得外部存储器的目录以便以后使用
  14.  *         Environment.getExternalStorageDirectory()+"/"
  15.  * */
  16. public class FileUtils {
  17.     private String SDPATH;
  18.     
  19.     /**/
  20.     public FileUtils(){
  21.         //得到当前外部存储设备目录 我的是/mnt/sdcard
  22.         SDPATH = Environment.getExternalStorageDirectory()+"/";
  23.     }
  24.     public String getSDPATH(){
  25.         return SDPATH;
  26.     }
  27.     
  28.     /*     creatSDFile(String fileName)在外部存储器SDPATH目录上创建文件fileName
  29.      * 返回文件名
  30.      * file = new File(SDPATH+fileName);
  31.      * file.createNewFile();
  32.      */    
  33.     public File creatSDFile(String fileName) throws IOException{
  34.         File file = new File(SDPATH+fileName);
  35.         file.createNewFile();
  36.         return file;
  37.     }
  38.     
  39.     /*    File creatSDDir(String dirName)在外部存储器SDPATH上创建目录
  40.      * 返回路径名
  41.      * dir = new File(SDPATH+dirname);
  42.      * dir.mkdir()
  43.      * */    
  44.     public File creatSDDir(String dirName){
  45.         File dir = new File(SDPATH+dirName);
  46.         dir.mkdir();
  47.         return dir;
  48.     }
  49.     
  50.     //判断SD卡上的文件夹是否存在
  51.     public boolean isFileExist(String fileName){
  52.         File file = new File(SDPATH+fileName);
  53.         return file.exists();
  54.     }
  55.     
  56.     /*File write2SDFromInput(String path,String fileName,InputStream input)
  57.      * 将输入流InputStream里面的数据写到path路径中的FileName中去
  58.      * 1、创建目录creatSDDir(path)目录,自己实现的方法,见上面
  59.      * 2、创建文件creatSDFile(path+fileName)
  60.      * 3、在文件file文件上创建输出流output= new FileOutStream(file),以后对output操作就是对file文件进行操作
  61.      * 4、从输入流中读数据写到输出流中input.read(buffer) 到output.write(buffer)
  62.      * 5、输入流全部写入到输出流之后,要清空输出流的缓存 output.flush()*/
  63.     public File write2SDFromInput(String path,String fileName,InputStream input){
  64.         File file = null;
  65.         OutputStream output = null;
  66.         try{
  67.             creatSDDir(path);//创建目录
  68.             file = creatSDFile(path+fileName);//创建文件        
  69.             output = new FileOutputStream(file);//写入数据
  70.             byte buffer [] = new byte[4*1024];
  71.             while((input.read(buffer)!= -1)){
  72.                 output.write(buffer);
  73.             }
  74.             output.flush();//清空缓存            
  75.         }
  76.         catch(Exception e){
  77.             e.printStackTrace();
  78.         }
  79.             try{
  80.                 output.close();
  81.             }
  82.             catch(Exception e){
  83.                 e.printStackTrace();
  84.             }
  85.     
  86.         return file;
  87.     }
  88.     
  89.     /*List getMp3Files(String path)读取目录中的MP3文件的名字和大小
  90.      * 返回的Mp3Info列表
  91.      * 1、路径file = new File(SDPATH+path)
  92.      * 2、把file路径下所有的文件的名字返回到files[]数组中
  93.      * 3、在files[]数据中查找后缀为mp3的文件files[i].getName().endsWith(mp3)
  94.      * 把文件名和大小放入到mp3Info中mp3Info.setMp3Name(files[i].getName());
  95.      * 把mp3Info放入到mp3Infos中mp3Infos.add(mp3Info)
  96.      * 4、最后返回return mp3Infos;*/    
  97.     public List<Mp3Info> getMp3Files(String path){
  98.         List<Mp3Info> mp3Infos = new ArrayList<Mp3Info>();
  99.         File file = new File (SDPATH+ path);
  100.         File [] files = file.listFiles();
  101.         for(int i=0;i<files.length;i++){
  102.             if(files[i].getName().endsWith("mp3")){
  103.                 Mp3Info mp3Info = new Mp3Info();
  104.                 mp3Info.setMp3Name(files[i].getName());
  105.                 mp3Info.setMp3Size(files[i].length()+"");
  106.                 mp3Infos.add(mp3Info);
  107.             }            
  108.         }
  109.         return mp3Infos;
  110.     }
  111. }

阅读(633) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~