之前的准备要做好,权限声明。
<!-- SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 向SDCard读写数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
没有权限的话,文件夹新建不了,Txt新建不了。
第一步,获取手机路径,有无SD卡均适应。
public static String getPath() {
File sdDir = null;
//判断有没有SD卡
boolean sdCardExist = Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
if (sdCardExist) {
sdDir = Environment.getExternalStorageDirectory();
}
return sdDir.toString();
}
第二步,新建放Txt文件的文件夹
public static void makeFile(String fileName) {
File file = new File(fileName);
//判断文件夹是否存在,如果不存在就创建,否则不创建
if (!file.exists()) {
file.mkdirs();
} else {
LogUtil.fussenLog().d("路径已存在");
}
}
使用:
FileTool.makeFile(FileTool.getPath() + "/HaHa");
然后在根目录下面就可以看见有一个HaHa的文件夹,打开来里面是空的,因为我们还没有向里面放东西(废话。。。)
第三步,向HaHa文件夹里面创建Txt文件
//Txt 换行是 "\r\n"
//新建Txt 第一个参数是路径 第二个参数是txt内容
public static void makeTxtFile(String fileName, String txt) {
//每次写完自动换行
txt = txt + "\r\n";
try {
FileOutputStream outputStream = new FileOutputStream(fileName + ".txt", true);
OutputStreamWriter writer = new OutputStreamWriter(outputStream, "utf-8");
writer.write(txt);
writer.flush();
//关流
writer.close();
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
LogUtil.fussenLog().d("新建Txt时出错:" + e);
}
}
使用:
FileTool.makeTxtFile(FileTool.getPath()+"/HaHa/heihei" , "啦啦啦");
最后就会看到HaHa文件夹里面有一个heihei的txt文件,文件里面有一句话是:“啦啦啦”。
-------------------------------------------------------------------------------------------------
注意:
1,
txt = txt + "\r\n";
这句话是Txt文件里面的换行符,保证每次输入之后自动换行,之后写入的不会接到之前写的后面,而是重新写一行
2,
OutputStreamWriter writer = new OutputStreamWriter(outputStream, "utf-8");
这个构造方法的第二个参数是决定txt的编码格式,我知道的有“gb2312”“gbk”“utf-8”等。如果新建的txt编码格式不是
AS的编码格式的话,输入的中文可能会乱码
3,
file.mkdirs();
新建文件夹的这一行看到网上有其他的方法。
第一个是不带s的 这个直接忽略,因为不能建二级文件夹。
第二个:
file.getParentFile().mkdirs();
file.createNewFile();
这个是新建文件,必须自己手动输入文件格式,不输入的话,新建出来的是无法识别的。
OK,搞定收工,加下来 看一下怎么删除文件,或者修改删除txt文件的内容,和读取txt文件内容