我必须传输我的应用所需的数据文件。 我读了很多关于这个主题的主题,我不明白它是如何运作的。 1.我正在使用android studio 0.8.6。很多线程都提到了显然位于src / main中的文件夹资产。当我创建一个新项目时,该文件夹不存在。我手动创建一个,我把它放在jpg和txt文件中。 2.我运行以下代码:
AssetManager am = getAssets();
String[] files = new String[0];
try {
files = am.list("Files ;
} catch (IOException e) {
e.printStackTrace();
}
for(int i=0;i<files.length;i++){
Toast.makeText(getApplicationContext(), "File: "+files[i]+" ", Toast.LENGTH_SHORT).show();
}
我得到一个files.length = 0 1.我可以创建文件,写入并阅读但我不知道它们驻留在哪里。 这不是我想要做的。我想通过应用程序传递数据。 对不起,我发了很长的电子邮件,但我输了。 提前谢谢!
答案 0 :(得分:0)
我用于从资产中读取文件的代码如下所示:
public String ReadFromfile(String fileName, Context context) {
StringBuilder returnString = new StringBuilder();
InputStream fIn = null;
InputStreamReader isr = null;
BufferedReader input = null;
try {
fIn = context.getResources().getAssets()
.open(fileName, Context.MODE_WORLD_READABLE);
isr = new InputStreamReader(fIn);
input = new BufferedReader(isr);
String line = "";
while ((line = input.readLine()) != null) {
returnString.append(line);
}
} catch (Exception e) {
e.getMessage();
} finally {
try {
if (isr != null)
isr.close();
if (fIn != null)
fIn.close();
if (input != null)
input.close();
} catch (Exception e2) {
e2.getMessage();
}
}
return returnString.toString();
}
此代码不是我的,可以在下面的答案中找到:
答案 1 :(得分:0)
我使用以下代码取得了一些进展:
public class MyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
File dir = getFilesDir();
File f = new File("/data/data/com.example.bernard.myapp/");
File file[] = f.listFiles();
for(int i=0;i<file.length;i++){
Toast.makeText(getApplicationContext(), "File: "+String.valueOf(file[i]), Toast.LENGTH_SHORT).show();
}
}
我在硬盘中编码,就像我的应用程序的根源一样:
File f = new File("/data/data/com.example.bernard.myapp/");
结果是我可以看到3个文件:lib,cache,files in&#34; files&#34;出现我创建的运行应用程序的文件。 我仍然不知道资产在哪里,也不知道我在我的应用程序中传输/放置.txt和.jpg文件的位置。我开发使用工作室。