其次是文件存储问题

我本来以为安卓和Windows一样,直接在根目录new一个File对象然后随便怎么操作都行呢。

然后各种文件或目录没找到的异常表示这样行不通。

于是就找办法呗。

首先是输出流的问题,要往安卓的文件里写东西,不是自己new各种输出流的。

Context类提供了一个方法:

android.content.Context.openFileOutput(String name, int mode)

所以就需要往管输入输出的类的构造函数里传入Activity自身,用以打开输入输出流。

第一个参数好理解,就是文件名,不过是单纯的文件名,不包含任何目录和分隔符的那种。

第二个是输出输出模式,有几个静态常量,在Context类里。

  MODE_PRIVATE: 默认操作

  MODE_APPEND: 追加模式,在已经存在的文件后面追加内容。

  MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE: 官方文档表示,用来控制权限。

然后方法的返回值就是相应的输入输出流。

搞定了这些之后,我以为就可以写文件了,结果发现又报错了,好在这次我一眼就看到了错在哪。

总之是没有权限。

于是就加上了往外部存储写入的权限,同时又在网上发现了外部存储路径的获得方法:

// 获取外部存储路径并创建文件对象。
File externalDirectory = Environment.getExternalStorageDirectory();
String fileName = "xml_resource.xml";
File file = new File(externalDirectory, fileName);

于是终于写出文件成功了,虽然打印的日志是乱码,但是按照之前的测试,代码应该是没问题的。

总之又出现了更多bug,慢慢解决……

原文地址:https://www.cnblogs.com/chihane/p/3619078.html