我本来以为安卓和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,慢慢解决……