android 创建 file 文件,文本 并写入内容

创建file 文件在android 6.0 之后需要用户手动开启权限下面介绍下使用

这里只是写入内容所以就在配置文件中添加写入的权限,

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

如果需要,读取,删除权限,需要另外添加

 看下具体的代码

  //sdk 大于6.0的判断
                if (Build.VERSION.SDK_INT >= 23) {
                    int REQUEST_CODE_CONTACT = 101;
                    String[] permissions = {
                            Manifest.permission.WRITE_EXTERNAL_STORAGE};
                    //验证是否许可权限
                    for (String str : permissions) {
                        if (MainActivity.this.checkSelfPermission(str) != PackageManager.PERMISSION_GRANTED) {
                            //申请权限
                            MainActivity.this.requestPermissions(permissions, REQUEST_CODE_CONTACT);
                            return;
                        } else {
                            String path = Environment.getExternalStorageDirectory() + "/MyTest";
                            Log.e("------path", path);
                            File files = new File(path);
                            if (!files.exists()) {
                                files.mkdirs();
                            }
                            try {
                                FileWriter fw = new FileWriter(path + File.separator + "log.txt");
                                fw.write("学而时习之,温故而知新");
                                fw.close();
                                Toast.makeText(MainActivity.this, "文件写入成功", Toast.LENGTH_SHORT).show();
                            } catch (Exception e) {
                                e.printStackTrace();
                            }
                            
                        }
                    }
                }  

很多人写入内容的时候使用的FileOutputStream 这个看自己的习惯,由于FileOutputStream 要传入的内容是byte 类型

还需要在转换一次,使用FileWriter 是可以直接使用String 所以,这里使用了FileWriter 类型

看下具体在手机里面的那个目录里面

看下打印的路径 E/------path: /storage/emulated/0/MyTest   ,刚开始自己搜索emulated 到这个文件夹里面找,但是没有发现内容

最后又检查代码感觉没有问题呢,最后自己把文件改成时间最近的在上面看到了创建的文件了 

看下写入的内容

这样就完成了,但是如果有写特殊的地方,开发需要把日志使用写入的文件并记录时间

这样可以使用把上面的改成一个静态类,看自己习惯放到那个工具类里面就行,看下面代码

public class FileLog{

    /**
     * 保存日志到本地存储根目录下
     * @param message      保存的信息
     * @param fileName     保存的文件名称
     * @param messageTitle 保存的信息标题
     */
    public static void saveLog(String messageTitle,String message, String fileName) {
        String path = Environment.getExternalStorageDirectory() + "/MyLog";
        File files = new File(path);
        Date date = new Date();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-M-dd HH:mm:ss,EE", Locale.CHINA);
        String formatDate = dateFormat.format(date);
        if (!files.exists()) {
            files.mkdirs();
        }
        if (files.exists()) {
            try {
                FileWriter fw = new FileWriter(path + File.separator
                        + fileName + ".txt");
                fw.write(formatDate + " " + messageTitle + "\n");
                fw.write(message + "\n");
                fw.write("\n");
                fw.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

    }
}

使用如下


public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        findViewById(R.id.txt).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //sdk 大于6.0的判断
                if (Build.VERSION.SDK_INT >= 23) {
                    int REQUEST_CODE_CONTACT = 101;
                    String[] permissions = {
                            Manifest.permission.WRITE_EXTERNAL_STORAGE};
                    //验证是否许可权限
                    for (String str : permissions) {
                        if (MainActivity.this.checkSelfPermission(str) != PackageManager.PERMISSION_GRANTED) {
                            //申请权限
                            MainActivity.this.requestPermissions(permissions, REQUEST_CODE_CONTACT);
                            return;
                        } else {
                            FileLog.saveLog("------查看saveLog是否生效", "具体要查看的内容,这个可以看成Log里面要查看日志的内容", "MainActivityLog");

                        }
                    }

                }
            }
        });


    }
}

查看生成的文件

生成的txt 名字自己取的

查看生成的内容

源码地址查看,去吧皮卡丘

发布了658 篇原创文章 · 获赞 250 · 访问量 63万+

猜你喜欢

转载自blog.csdn.net/qq_33210042/article/details/100973069
今日推荐