Android текстовый файл импорт, где я могу сохранить текстовый файл в какую папку? - PullRequest
1 голос
/ 13 марта 2012

Так что это довольно неловкий вопрос, но у меня есть текстовый файл, и java прочитает все слова в нем и добавит его в массив, я не знаю, куда поместить текстовый файл, например, какую папку комп может пойти получить его? может кто-нибудь сказать мне мой код работает в обычном Java-приложении, поэтому он должен работать на Android.

Ответы [ 3 ]

1 голос
/ 13 марта 2012

вы можете использовать

<your-context>.getAssets();

для возврата объекта AssetsManager.

AssetsManager assets = context.getAssets();

Затем вы можете открыть входной поток с помощью метода open ().

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

Объект InputStream является стандартным объектом Java из пакета ввода-вывода.Вы можете украсить этот поток любым желаемым декоратором объектов (Reader, BufferedReader и т. Д.).

Если вы хотите переместить этот файл из APK (который не раздувается) в телефон, вы можете просто скопироватьбайты файла из входного потока, используя выходной поток.Обратите внимание, что у вас должны быть разрешения в вашем каталоге записи (вы можете сделать это, если ваш телефон имеет root-права и вы создали интерфейс оболочки для запуска собственных команд оболочки через JNI).

UPDATE

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

Не проверял, но я думаю, что это то, что вы хотите.

0 голосов
/ 02 апреля 2014

Я создал новую необработанную папку в папке res и поместил 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();
}
0 голосов
/ 13 марта 2012

Вы можете поместить файл в папку assets и использовать

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

для получения входного потока

...