一、二、三是创建文件的过程,四是为何失败的原因,希望能够帮到大家!
一,获取手机读写权限
在androidmanifest文件中添加以下权限,代码如下:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
二,写一个读写的类
我把它命名为TxtWrite,代码如下:
import android.os.Environment;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class TxtWrite {
private File file = null;
public File getFile() {
return file.getAbsoluteFile();
}
public TxtWrite(String str) {
super();
//表示在根目录下创建一个子目录,"/"表示文件分隔符
this.file = new File(Environment.getExternalStorageDirectory() + "/" + str);
}
/**
* @Title: doWriteTxt
* @Description: 写txt
* @param @param str4Write 待写入的数据
* @param @param flag 选择追加还是重新创建txt文本,true为追加
* @return void
* @throws
*/
@SuppressWarnings("ResultOfMethodCallIgnored")
public void doWriteTxt(String str4Write, boolean flag) {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file, flag);
fos.write(str4Write.getBytes()); //以字节形式向文件中添加
fos.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
}
}
}
三、调用该类
//构造一个名字叫test的txt文件
txtWrite = new TxtWrite("test.txt");
//声明为true,表示可以向文件中添加内容,\r表示空一行后换行、\n表示换行符。
txtWrite.doWriteTxt("\r"+"***"+Headline+"****"+"\n",true);
四、总结
Android 10以后想在手机里面创建文件,必须要在AndroidManifest中的Application里面添加一个声明:
android:requestLegacyExternalStorage="true"
因为这个问题,浪费了我2个小时啊!!简直搞事情!