当然在写之前记得加入sd卡的读取权限
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import android.os.Environment;
public class SDUtils {
/**
* 判断sd卡是否正确加载
* @return
*/
private static boolean isMounted(){
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
return true;
}else {
return false;
}
}
//写入sd卡
/**
*
* @param dirName 写入sd的文件夹名字
* @param fileName 文件名
* @return 是否写入正确
*/
public static boolean writeToSD(String dirName,String fileName,byte[] bytes){
if (isMounted()) {
File dir = new File(Environment.getExternalStorageDirectory() +
File.separator +dirName);
dir.mkdirs();
File file = new File(dir, fileName);
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file);
fos.write(bytes);
return true;
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return false;
}
/**
*
* @param path 读取sd卡文件的全路径
* @return 读取的内容
*/
public static byte[] readFromSD(String path){
File file = new File(path);
FileInputStream fis = null;
ByteArrayOutputStream baos = null;
try {
fis = new FileInputStream(file);
baos = new ByteArrayOutputStream();
int len = 0;
byte[] buffer = new byte[1024];
while((len = fis.read(buffer)) != -1){
baos.write(buffer, 0, len);
}
return baos.toByteArray();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
fis.close();
baos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
}