package com.example.ipcplayer.utils;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import android.os.Environment;
public class FileUtil{
public static String DIR_HOME = "IPC";
public static String DIR_MUSIC = "music";
public static String DIR_DOWNLOAD = "download";
public static String DIR_LYRIC = "lyric";
private static String TAG = FileUtil.class.getSimpleName();
public static String getStoragePath(){
LogUtil.d(TAG + " getStoragePath ");
if(StorageUtil.isExternalStorageAvailable()){
return Environment.getExternalStorageDirectory().getAbsolutePath();
}else {
return Environment.getDataDirectory().getAbsolutePath();
}
}
public static File getIPCHomeDir(){
LogUtil.d(TAG + " getIPCHomeDir ");
return new File(getStoragePath(),DIR_HOME);
}
public static File getIPCMusicDir(){
LogUtil.d(TAG + " getIPCMusicDir ");
return new File(getIPCHomeDir(),DIR_MUSIC);
}
public static File getIPCDownloadDir(){
LogUtil.d(TAG + " getIPCDownloadDir ");
return new File(getIPCHomeDir(),DIR_DOWNLOAD);
}
public static File getIPCLyricDir(){
LogUtil.d(TAG + " getIPCLyricDir ");
return new File(getIPCHomeDir(),DIR_LYRIC);
}
@SuppressWarnings("resource")
public static long getFileSize(File f) throws Exception{
long s = 0;
if (f.exists()) {
FileInputStream fis = null;
fis = new FileInputStream(f);
s= fis.available();
LogUtil.d(TAG + " file size = " + s);
} else {
LogUtil.d(TAG + " file didn't exist ");
}
return s;
}
public static ArrayList<File> getAllDirectory(){
ArrayList<File> dirList = new ArrayList<File>();
dirList.add(getIPCHomeDir());
dirList.add(getIPCMusicDir());
dirList.add(getIPCDownloadDir());
dirList.add(getIPCLyricDir());
return dirList;
}
public static boolean isDirectory(File file){
return file.exists() && file.isDirectory();
}
public static boolean createDiretory(File file){
if(file.exists() && file.isDirectory()){
return false;
}else{
return file.mkdirs();
}
}
public static String readSDFile(String fileName) throws Exception{
if(fileName == null){
return null;
}
StringBuffer sb = new StringBuffer();
File file = new File(fileName);
FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader br = new BufferedReader(isr);
String line = null;
while ((line = br.readLine()) != null) {
sb.append(line);
LogUtil.d(TAG + " line= " + line);
sb.append("\n");
}
br.close();
isr.close();
fis.close();
return sb.toString();
}
public static ArrayList<String> readSDFile1(String fileName) throws Exception{
if(fileName == null){
return null;
}
ArrayList<String> stringList = new ArrayList<String>();
File file = new File(fileName);
FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader br = new BufferedReader(isr);
String line = null;
String temp = null;
while ((line = br.readLine()) != null) {
// temp = br.readLine();
// line = br.readLine();// 会两次读取 所以看到的结果是隔行读取文件
// line = new String(temp.getBytes(),"UTF-8");
LogUtil.d(TAG + " line= " + line);
stringList.add(line);
}
br.close();
isr.close();
fis.close();
return stringList;
}
}