1.读写外部存储文件需要权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
2.MainActivity.java
import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Environment;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class MainActivity extends AppCompatActivity {
//获取手机外部存储地址
private File dir = Environment.getExternalStorageDirectory();
private File dataFile = new File(dir,"data.txt");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Android6.0以上需要动态询问获取权限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
== PackageManager.PERMISSION_GRANTED) {
System.out.println("ok");
}else {
ActivityCompat.requestPermissions(this,new String[] {
Manifest.permission.WRITE_EXTERNAL_STORAGE
},1);
}
System.out.println(dir);//到这里面去寻找你的写的文件 /storage/sdcard0
//执行写
write();
//执行读
read();
}
//写入操作
private void write() {
try {
if (!dataFile.exists()) {
dataFile.createNewFile();
}
FileOutputStream fos = new FileOutputStream(dataFile);
fos.write(new String("Hello").getBytes("utf-8"));
fos.flush();
fos.close();
}catch (Exception e) {
e.printStackTrace();
}
}
//读取操作
private void read() {
try {
FileInputStream fis = new FileInputStream(dataFile);
//读取本地小文件
byte[] bytes = new byte[fis.available()];
fis.read(bytes);
fis.close();
String str = new String(bytes,"utf-8");
System.out.println(str);
}catch (Exception e) {
e.printStackTrace();
}
}
}
读写的文件在手机的sd中:data.txt