我应该在Android中将文件保存到本地访问位置?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我应该在Android中将文件保存到本地访问位置?相关的知识,希望对你有一定的参考价值。

我有两个数据集,它们与我的电脑上的java文件和当前文件夹相同。目前,我通过我的C盘访问它们。由于这是一个应用程序,我应该在哪里保存我的.ARFF文件以及我应该使用哪条路径?我试过在原始文件夹中,但似乎没有任何工作。

这是我到目前为止所拥有的... Current Code Hierarchy

答案

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

1)右键单击res文件夹,选择New> Directory,然后studio将打开一个对话框,它将要求您输入名称。

2)输入“raw”并单击“确定”。打开res文件夹,您将在其下找到您的原始文件夹。

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();
}
}
另一答案

过了好几个小时

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

  1. raw目录中创建res文件夹。
  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;
}

奇迹般有效!

资源:

以上是关于我应该在Android中将文件保存到本地访问位置?的主要内容,如果未能解决你的问题,请参考以下文章

在 angular/ngrx 应用程序中将状态保存到本地存储的逻辑的位置

android中实现向sd卡中续写文件的问题:

AS3将文件保存在iOS上的可访问位置

在 Android OpenGL ES 中将 2D 纹理保存为 png

在 C# 中将 UNC 路径转换为本地路径

在 Flutter 中将视频文件保存到设备