【问题标题】:Unable to create XML file on Android Device无法在 Android 设备上创建 XML 文件
【发布时间】:2019-09-10 16:16:03
【问题描述】:

我正在为 Honeywell CK75 扫描仪开发一个 Android 应用程序,它将条形码扫描保存到设备上存储的 XML 文件中。

该应用正在为 Android SDK 级别 19 构建。访问存储的权限已到位

这是创建和保存 XML 文件的方法的代码。

public static void writeToXMLFile(List<Scan> scans, Context context) throws IOException {

        XmlSerializer serializer = Xml.newSerializer();
        StringWriter writer = new StringWriter();
        serializer.setOutput(writer);
        serializer.startDocument("UTF-8", true);
        serializer.startTag(null, "Scans");

        for(Scan s : scans){

            serializer.startTag(null, "Scan");

            serializer.startTag(null, "AimID");
            serializer.text(s.getAimID());
            serializer.endTag(null, "AimID");

            serializer.startTag(null, "BarcodeData");
            serializer.text(s.getBarcodeData());
            serializer.endTag(null, "BarcodeData");

            serializer.startTag(null, "BarcodeID");
            serializer.text(s.getBarcodeID());
            serializer.endTag(null, "BarcodeID");

            serializer.startTag(null, "TimeStamp");
            serializer.text(s.getTimestamp());
            serializer.endTag(null, "TimeStamp");

            if(s.getTrailerNo().equals(null) || s.getTrailerNo().isEmpty()){
                serializer.startTag(null, "BinNo");
                serializer.text(s.getBinNo());
                serializer.endTag(null, "BinNo");
            }
            else{
                serializer.startTag(null, "TrailerNo");
                serializer.text(s.getTrailerNo());
                serializer.startTag(null, "TrailerNo");
            }
        }


        serializer.endDocument();
        String result = writer.toString();

        String url = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/Scan.xml";
        File f = new File(url);
        f.getParentFile().mkdir();
        f.createNewFile();
        FileOutputStream output = new FileOutputStream(f, false);
        output.write(result.getBytes(),0,result.length());
        output.close();

    }

我希望文件保存到 Documents 文件夹,但是当我检查该文件夹时,那里没有 XML 文件。

编辑

似乎它没有创建文件。我尝试了几种不同的方法来创建文件,但都没有奏效。目前,我并不关心 XML 是否正常,我只是想在 Android 上创建一个可以从 PC 访问的文件

【问题讨论】:

  • 我强烈建议使用 SQLITE 代替
  • @user10844401 我正在使用 XML,因为一旦设备插入计算机,XML 文件将被发送到一个程序,然后该程序将该数据推送到现有数据库中。此外,我无法从设备直接连接到数据库,因为将使用它的位置没有足够的互联网连接
  • 我认为 sqlite 数据将更容易导入其他数据库。此外,您可以轻松地将 sqlite 导出为 xml 或 csv。
  • @user10844401 问题不在于它是 XML 还是 sqlite。问题是我无法在设备上创建任何类型的文件。

标签: java android xml file-io


【解决方案1】:

解决了。问题不在于没有创建文件。这是。问题是当我在文件资源管理器中查找文件时,它没有出现。但是,如果我使用 Android Studio 内置的文件资源管理器,我可以找到该文件

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-09
    • 1970-01-01
    • 2012-01-13
    • 1970-01-01
    相关资源
    最近更新 更多