Android 新建文件夹,新建Txt,解决中文乱码问题

之前的准备要做好,权限声明。

<!-- 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文件内容



  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值