【问题标题】:Where should I save my file in Android for local access?我应该在哪里保存我的文件在 Android 中以供本地访问?
【发布时间】:2019-08-22 05:31:41
【问题描述】:

我有两个数据集,它们当前与我的 java 文件和我的 PC 位于同一文件夹中。目前,我正在通过我的 C 盘访问它们。由于这是一个应用程序,我应该在哪里保存我的 .ARFF 文件以及我应该使用什么路径?我已经在 raw 文件夹中尝试过,但似乎没有任何效果。

这是我目前所拥有的......

【问题讨论】:

    标签: java android-studio save weka arff


    【解决方案1】:

    在你的项目中创建一个raw目录,raw包含在android项目的res文件夹中。您可以在原始文件夹中添加资产文件,如音乐文件、数据库文件或文本文件或其他一些您需要直接访问的文件

    1)右键res文件夹,选择新建>目录,然后studio会打开一个对话框,会要求你输入名字。

    2) 输入“raw”并单击“确定”。打开 res 文件夹,你会在它下面找到你的 raw 文件夹。

    InputStream input = Context.getResources().openRawResource(R.raw.your_file_name);
    

    // 从原始目录读取文件的示例

    private String readFileFromRawDirectory(int resourceId)
    {
    InputStream iStream = context.getResources().openRawResource(resourceId);
    ByteArrayOutputStream byteStream = null;
    try {
    byte[] buffer = new byte[iStream.available()];
    iStream.read(buffer);
    byteStream = new ByteArrayOutputStream();
    byteStream.write(buffer);
    byteStream.close();
    iStream.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    return byteStream.toString();
    }
    }
    

    【讨论】:

    • 我跟着你的步骤。我应该使用什么路径?是“/raw/JavaTestingSet.arff”吗?
    • R.raw.JavaTestingSet
    • 我收到此错误。无法解析构造函数“FileReader(int)”。我一定会使用 FileReader。
    • 您可以使用 openRawResource(int) 读取原始资源,这将为您提供一个 InputStream,您可以使用 InputStreamReader 包装,然后使用 BufferedReader gist.github.com/Airfixed/799e784696b0a60c5423d347bf33a341 包装
    • 您必须尝试在某个 Fragment 或某个 Activity 上读取资源,对吧?
    【解决方案2】:

    经过太多小时

    从资产文件夹中检索数据的非常简单的解决方案!只有一种用户定义的方法。

    1. res 目录中创建raw 文件夹。
    2. 粘贴raw directory中的任何文件
    3. 制作一个单独的.java 文件
    4. 确保它是一个派生类(在这种情况下它扩展了AppCompatActivity
    5. 在正文中写 A 部分
    6. B 部分写在体外

    A. 这是在 main 函数中或在自定义 user-defined 函数中。

    BufferedReader bReader;            
    bReader = new BufferedReader(
               new InputStreamReader(ISR(R.raw.FILENAME_WITHOUT_TYPE)));
    

    FILENAME_WITHOUT_TYPE 指的是文件的名称,而不是它的结尾(后面的所有内容都是 .)。

    B.这是ISR的定义。

    public InputStream ISR(int resourceId) {
        InputStream iStream = getBaseContext().getResources().openRawResource(resourceId);
        return iStream;
    }
    

    像魅力一样工作!

    资源:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-20
      • 2021-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多