文件操作所需要的权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
/**
* AndroidManifest添加写入数据的权限
* * Andriod 23以后,就算是添加权限也需要在使用时动态请求,否则文件操作会失败
* * 外部存储:
* * 保存外部SD卡中,使用之前确定SD卡可用
* * 确保当前SD卡可用
* * 获取SD卡的根路径
* * 创建文件对象,由于不同手机SDcard目录不同,
* * 所以我们通过Environment.getExternalStorageDirectory()获得路径。
*/
public class FileoperationActivity extends AppCompatActivity {
//一级文件夹路径
public final static String Folder_NAME = Environment.getExternalStorageDirectory() + File.separator + "HelloTest";
//二级文件夹路径
public final static String Second_PATH = Folder_NAME + File.separator + "SecondFolder" + File.separator;
//文件路径
public static final String FILE_NAME = Folder_NAME + File.separator + "HelloTest.txt";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fileoperation);
FolderCreate();
FileCreate();
FileWrite();
FileRead();
}
/**
* 文件夹创建
*/
private void FolderCreate() {
//mkdirs()可以建立多级文件夹, mkdir()只会建立一级的文件夹
File dirFirstFolder = new File(Second_PATH);
if (!dirFirstFolder.exists()) {
dirFirstFolder.mkdirs();
}
}
/**
* 文件创建
*/
private void FileCreate() {
File file = new File(FILE_NAME);
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 文件的写入
*/
private void FileWrite() {
File file = new File(FILE_NAME);
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
try {
FileOutputStream fos = new FileOutputStream(file);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));
bw.write(System.currentTimeMillis() + "你好啊");
bw.flush();
bw.close();
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 文件的读取
*/
private void FileRead() {
try {
File file = new File(FILE_NAME);
BufferedReader br = new BufferedReader(new FileReader(file));
String readline = "";
StringBuffer sb = new StringBuffer();
while ((readline = br.readLine()) != null) {
System.out.println("readline:" + readline);
sb.append(readline);
}
br.close();
System.out.println("读取成功:" + sb.toString());
Toast.makeText(this, sb, Toast.LENGTH_SHORT).show();
} catch (Exception e) {
e.printStackTrace();
}
}
}