android文本文件导入我在哪里保存文本文件的文件夹?

时间:2012-03-12 23:51:46

标签: android save directory text-files

所以这是一个非常令人尴尬的问题,但我有一个文本文件,java会读取其中的所有单词并将其添加到数组中,我不知道将文本文件放在哪里,就像文件夹那样comp可以搞定吗?有人可以告诉我我的代码在普通的java应用程序中工作,所以它应该在android上运行。

3 个答案:

答案 0 :(得分:1)

你可以使用

<your-context>.getAssets();

返回AssetsManager对象。

AssetsManager assets = context.getAssets();

然后,您可以使用open()方法打开输入流。

InputStream inputStream = assets.open("filename");

InputStream对象是IO包中的标准Java对象。您可以使用您希望的对象装饰器(Reader,BufferedReader等)来装饰此流。

如果您希望将此文件从APK(未充气)移出手机,您可以使用输出流从输入流中复制文件的字节。请注意,您必须在写入目录中拥有权限(如果您的手机已植根并且您已创建了一个shell接口以通过JNI运行本机shell命令,则可以执行此操作)。

<强>更新

try {
    InputStream inputStream = this.getAssets().open("test.txt");
    BufferedReader buffer = new BufferedReader(new Reader(inputStream));

    String line;
    while((line = buffer.readLine()) != null) {
        tots.add(line);
    }
}
catch(IOException e) {
    e.printStackTrace();
}

没有测试过,但我认为这就是你想要的。

答案 1 :(得分:0)

您可以将文件放入资产文件夹并使用

InputStream stream = getAssets().open(filename); 

获取输入流

答案 2 :(得分:0)

我在res文件夹中创建了新的raw文件夹,并将chapter0.txt放在这里。

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.induction);

    wordss = new Vector<String>();

    TextViewEx helloTxt = (TextViewEx) findViewById(R.id.test);
    helloTxt.setText(readTxt());
}

private String readTxt() {

    InputStream inputStream = getResources().openRawResource(R.raw.chapter0);
    // getResources().openRawResource(R.raw.internals);
    System.out.println(inputStream);
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

    int i;
    try {
        i = inputStream.read();
        while (i != -1) {
            byteArrayOutputStream.write(i);
            i = inputStream.read();
        }
        inputStream.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return byteArrayOutputStream.toString();
}