读写权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
1.写入到SDCard
/**
* 根据输入流写入到SD卡中的位置
* 需要权限:
* android.permission.MOUNT_UNMOUNT_FILESYSTEMS 在SD卡上创建文件的权限
* android.permission.WRITE_EXTERNAL_STORAGE 写入SD卡的权限
* @param is 输入流
* @param dirpath sd卡中存放的文件的目录
* @param targetFileName sd卡中存放的文件的名称
*/
public static void writeToSDCard(InputStream is,String dirpath,String targetFileName) {
// TODO Auto-generated method stub
if((Environment.MEDIA_MOUNTED).equals(Environment.getExternalStorageState())){ //判断SDCard是否存在,是否可以具有访问SDCard的权限
try
{
String pathString;
if(dirpath.equals("")){
pathString = Environment.getExternalStorageDirectory().getCanonicalPath();
}else{
pathString = Environment.getExternalStorageDirectory().getCanonicalPath() + "/"+ dirpath;
}
File filePath = new File(pathString); //创建目录
if(!filePath.exists()){
filePath.mkdir();
}
File saveFile = new File(filePath, targetFileName);
FileOutputStream fos = new FileOutputStream(saveFile); //准备待写入的文件
byte[] buffer = new byte[1024];
int count;
while((count = is.read(buffer)) != -1){
fos.write(buffer, 0, count);
}
fos.close();
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
FileOutputStream fos = new FileOutputStream(pathString + fileName);
fos.write(sb.toString().getBytes());
fos.close();is.close();
2.从SDCard中读取
public void readFromSDCard(String fileName) {
// TODO Auto-generated method stub
if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){
try {
FileInputStream fis = new FileInputStream(Environment.getExternalStorageDirectory().getCanonicalPath()+ TARGET_DIR_NAME + TARGET_FILE_NAME);
InputStreamReader reader = new InputStreamReader(fis);
BufferedReader buffer = new BufferedReader(reader);
StringBuffer sb = new StringBuffer();
String str;
while(null != (str=buffer.readLine())){
sb.append(str);
}
fis.close();
System.out.println("读取的文件为: " + sb.toString());
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}