一、从本地读取lrc文件
从本地读取文件,android提供了与java相同的io操作,只不过要在AndroidManifest.xml添加读写sdcard权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
只要把路径传输进去,就可以取得io流。
File file=new File(FileUril.SDPATH + str);
File file=new File(FileUril.SDPATH + str);
在项目包src/file/FileUril.java中定义了静态的变量
Public SDPATH=Environment.getExternalStorageDirectory()+"/";
Public SDPATH=Environment.getExternalStorageDirectory()+"/";
此句取得android的根目录("/"),这样就可以通过str这个参数定位到路径里。取得io流FileInputStream in=new FileInputStream(file);然后封装io流,且以UTF-8的格式,BufferedReaderb=newBufferedReader(new InputStreamReader(in,"utf-8")),接下来通过b.readLine()读取一行歌词数据,当读到结束时返回空。通过while循环就可以读取lrc所有数据。
代码如下:
public LrcParser(String str){
index=0;
musicDate=new ArrayList<String>();
map=new HashMap<Long,String>();
String s="";
File file=new File(FileUril.SDPATH+str);
try {
FileInputStream in=new FileInputStream(file);
BufferedReader b=new BufferedReader(new InputStreamReader(in,"utf-8"));while((s=b.readLine())!=null){
parser(s);
}
treeMap=ne