我如何将Android Studio用于文件是将文件放置在原始文件夹中,然后将其推送到/ data / data / yourapplication / files目录。 我通过Tools / Android / Android设备监控器执行此操作,并导航到/ data / data / yourapplication / files目录,然后在右上角选择一个图标“将文件推送到设备上”,然后导航至中的原始文件我的应用程序,然后选择要放在/ files目录中的csv文件。 从那时起,我将流读取器瞄准该目录,在我的情况下为/data/data/app/com.android/example/darrell/MenuPlanner/files目录。 此处寻址的文件使用文件扩展名,不需要指定的路径:
public List ReadEntreesFromFilesDir(Context inContext) {
this.mContext = inContext;
List lines = new ArrayList();
String[] separated;
try {
FileInputStream fis = mContext.openFileInput("entrees.csv");
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader bufferedReader = new BufferedReader(isr);
while ((mLine = bufferedReader.readLine()) != null) {
if (mLine == null) break;
lines.add(mLine);
}
fis.close();
isr.close();
} catch (FileNotFoundException e) {
Log.d("FILE ERROR", e.getMessage() + " not found");
} catch (IOException ioe) {
Log.d("FILE ERROR", ioe.getMessage());
}
for (int x = 0;x
separated = lines.get(x).split(",");
EntreeData thisEntree = new EntreeData();
thisEntree.setEntreeName(separated[0].trim());
thisEntree.setCategory(separated[1].trim());
thisEntree.setSubcategory(separated[2].trim());
thisEntree.setRecipe(separated[3].trim());
mEntreeList.add(thisEntree);
}
return mEntreeList;
}
作为后备,我从/ res / raw目录读取这是不可写的,并且可以保证文件的完整性。 此处的文件不使用扩展名,因此将流阅读器指向文件而不使用扩展名。 还可以使用资产管理器访问以下文件:
public List ReadEntreesFileFromRaw(Context inContext) {
this.mContext = inContext;
List lines = new ArrayList();
String[] separated;
AssetManager assetManager = mContext.getAssets();
try {
InputStream inputStream = mContext.getResources().openRawResource(R.raw.entrees);
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
int lineCount = 0;
while ((mLine = reader.readLine()) != null) {
separated = mLine.split(",");
EntreeData entreeEntry = new EntreeData();
if (mLine == null) break;
separated = mLine.split(",");
entreeEntry.setEntreeName(separated[0].trim());
entreeEntry.setCategory(separated[1].trim());
entreeEntry.setSubcategory(separated[2].trim());
entreeEntry.setRecipe(separated[3].trim());
mEntreeList.add(lineCount, entreeEntry);
lineCount++;
}
inputStream.close();
} catch (FileNotFoundException e) {
Log.d("FILE ERROR", e.getMessage() + " not found");
} catch (IOException ioe) {
Log.d("FILE ERROR", ioe.getMessage());
}
return mEntreeList;
}
祝您编程愉快!