<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
package net.bwie.localdata.activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.Environment; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import net.bwie.localdata.R; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; 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); } }
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="net.bwie.localdata.activity.FileActivity"> <Button android:id="@+id/read_file_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="读取文件"/> <Button android:id="@+id/write_file_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="写入文件"/> <TextView android:id="@+id/result_tv" android:text="结果" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout>