代码实现
public class FileActivity extends AppCompatActivity implements View.OnClickListener {
protected Button mReadFileBtn;
protected Button mWriteFileBtn;
protected TextView mResultTv;
public static void startActivity(Context context) {
context.startActivity(new Intent(context, FileActivity.class));
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.activity_file);
initView();
}
@Override
public void onClick(View view) {
if (view.getId() == R.id.read_file_btn) {
String result = readFile();
mResultTv.setText(result);
} else if (view.getId() == R.id.write_file_btn) {
writeFile();
}
}
// 读取文件
private String readFile() {
String filePath = Environment.getExternalStorageDirectory().getPath() + "/abc/";
String fileName = "xyz.txt";
File file = new File(filePath, fileName);
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
String result = "";
String line = "";
while ((line = br.readLine()) != null) {
result += line;
}
return result;
} catch (Exception e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
// 写入文件
private void writeFile() {
// 外部存储私有路径:Android文件夹
// String privatePath = getExternalFilesDir(null).getPath();// 私有路径不分类为null
// String filePath = privatePath + "/abc/";
// 外部存储公共路径:DICM,DOWNLOAD,MUSIC等系统提供的文件夹
// String publicPath = Environment
// .getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
// .getPath();
// String filePath = publicPath + "/abc/";
// 自定义文件路径
String rootPath = Environment.getExternalStorageDirectory().getPath();// 外部存储路径(根目录)
String filePath = rootPath + "/abc/";
String fileName = "xyz.txt";
File file = new File(filePath, fileName);
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file);
fos.write("asdasdas".getBytes());
Toast.makeText(this, "成功", Toast.LENGTH_SHORT).show();
} catch (Exception e) {
e.printStackTrace();
Log.d("1507", "error: " + e.getMessage());
} finally {
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
private void initView() {
mReadFileBtn = (Button) findViewById(R.id.read_file_btn);
mReadFileBtn.setOnClickListener(FileActivity.this);
mWriteFileBtn = (Button) findViewById(R.id.write_file_btn);
mWriteFileBtn.setOnClickListener(FileActivity.this);
mResultTv = (TextView) findViewById(R.id.result_tv);
}
}