如何将txt数据文件传输到我的Android应用程序

时间:2014-10-08 13:16:30

标签: android file

我必须传输我的应用所需的数据文件。 我读了很多关于这个主题的主题,我不明白它是如何运作的。 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.我可以创建文件,写入并阅读但我不知道它们驻留在哪里。 这不是我想要做的。我想通过应用程序传递数据。 对不起,我发了很长的电子邮件,但我输了。 提前谢谢!

2 个答案:

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

此代码不是我的,可以在下面的答案中找到:

read file from assets

答案 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文件的位置。我开发使用工作室。