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

1

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

Теги:
folder
save
text-files

3 ответа

1
Лучший ответ

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

<your-context>.getAssets();

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

AssetsManager assets = context.getAssets();

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

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

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

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

ОБНОВИТЬ

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
    Не могли бы вы объяснить, во-первых, как то, что идет в <> имя файла test.txt
  • 0
    Вам нужен объект контекста для извлечения ресурсов, т. Е. Метод getAssets () является методом контекста. Так что если вы в Activity или что-то, что наследует от ContextWrapper, вы можете просто сказать «this.getAssets ()». В противном случае вам нужно будет передать контекстную ссылку на функцию / метод, который пытается получить диспетчер активов.
Показать ещё 3 комментария
0

Я создал новую папку raw в папке 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

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

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

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

  • 0
    Я сделал это, но теперь я получаю сообщение об ошибке, когда код работает. это ссылка на мой новый вопрос, может быть, проверить это? stackoverflow.com/questions/9676773/read-a-text-file-android

Ещё вопросы

Сообщество Overcoder
Наверх
Меню