第四十五篇--将文件写入SD卡

时间:2023-03-08 18:34:47
第四十五篇--将文件写入SD卡

RAM: 运行内存

ROM: 外部存储,手机内部存储

SD卡:外部存储,SD卡存储。

在存储文件时千万不要忘记向清单文件中添加相应权限,并且android6.0以后还要添加运行时权限

还有一个权限有所不同

<--在SDCard中创建与删除文件权限--> //此权限9.0系统已经收未官有,可以不用添加

<uses-permisson android:name="android.permisson.MOUNT_UNMOUNT_FILESYSTEMS"/>

添加权限为:

<!--往SDCard写入数据权限-->

<uses-permission android="android.permission.WRITE_EXTERNAL_STORAGE"/>

MainActivity.java

package com.example.aimee.writesd;

import android.Manifest;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Toast; import java.io.File;
import java.io.FileOutputStream; public class MainActivity extends BaseActivity { private static final String TAG = "MainActivity"; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
} /**
* 模拟向SD卡写入一个视频文件
* @param view
*/
public void click(View view) { performCodeWithPermission("写入文件到sd卡", new PermissionCallback() {
@Override
public void hasPermission() {
//检查SD卡的状态
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
Log.i(TAG,Environment.getExternalStorageDirectory().getAbsolutePath());//外部存储
Log.i(TAG,Environment.getDataDirectory().getAbsolutePath());//内部存储
File sdFile = Environment.getExternalStorageDirectory();//外部存储空间
long sdSize = sdFile.getFreeSpace();
if (sdSize > 5 *1024 * 1024){
File file = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis() + "hlw.3gp");
try {
FileOutputStream fos = new FileOutputStream(file);
byte[] buffer = new byte[1024];
for (int i = 0;i<5*1024;i++){
fos.write(buffer);
}
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
else
Toast.makeText(MainActivity.this,"sd卡存储不足",Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(MainActivity.this,"没有挂载",Toast.LENGTH_SHORT).show();
}
} @Override
public void noPermission() {
Toast.makeText(MainActivity.this,"未授权",Toast.LENGTH_SHORT).show(); }
}, Manifest.permission.WRITE_EXTERNAL_STORAGE); }
}

SD卡首先是检查SD卡的状态,有没有挂载,有的话才会进行下面的操作。