我应该将文件保存在 Android 中的什么位置以供本地访问?
Where should I save my file in Android for local access?
我有两个数据集,它们当前位于与我的 java 文件相同的文件夹中,并且在我的 PC 上。目前,我正在通过我的 C 盘访问它们。由于这是一个应用程序,我应该在哪里保存我的 .ARFF 文件以及我应该使用什么路径?我在原始文件夹中尝试过,但似乎没有任何效果。
这是我目前所拥有的...
在你的项目中创建一个raw目录,raw包含在android项目的res文件夹中。您可以在原始文件夹中添加资产文件,如音乐文件、数据库文件或文本文件或您需要直接访问的其他一些文件
1) 右击res文件夹,select新建>目录,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();
}
}
过了太多小时
从资产文件夹中检索数据的非常简单的解决方案!只有一个用户定义的方法。
- 在
res
目录中创建 raw
文件夹。
- 粘贴
raw directory
中的任何文件
- 制作一个单独的
.java
文件
- 确保它是导数class(在本例中它扩展了
AppCompatActivity
- 在正文中写 A 部分
- 将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;
}
很有魅力!
资源:
我有两个数据集,它们当前位于与我的 java 文件相同的文件夹中,并且在我的 PC 上。目前,我正在通过我的 C 盘访问它们。由于这是一个应用程序,我应该在哪里保存我的 .ARFF 文件以及我应该使用什么路径?我在原始文件夹中尝试过,但似乎没有任何效果。
这是我目前所拥有的...
在你的项目中创建一个raw目录,raw包含在android项目的res文件夹中。您可以在原始文件夹中添加资产文件,如音乐文件、数据库文件或文本文件或您需要直接访问的其他一些文件
1) 右击res文件夹,select新建>目录,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();
}
}
过了太多小时
从资产文件夹中检索数据的非常简单的解决方案!只有一个用户定义的方法。
- 在
res
目录中创建raw
文件夹。 - 粘贴
raw directory
中的任何文件
- 制作一个单独的
.java
文件 - 确保它是导数class(在本例中它扩展了
AppCompatActivity
- 在正文中写 A 部分
- 将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;
}
很有魅力!
资源: