Так что это довольно смущающий вопрос, но у меня есть текстовый файл, и java будет читать все слова в нем и добавлять его в массив, я не знаю, куда положить текстовый файл, например, какую папку, иди возьми это? мог бы кто-нибудь сказать мне. мой код работает в обычном Java-приложении, поэтому он должен работать на android.
вы можете использовать
<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();
}
Не проверял, но я думаю, что это то, что вы хотите.
Я создал новую папку 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();
}
Вы можете поместить файл в папку с ресурсами и использовать
InputStream stream = getAssets().open(filename);
для получения входного потока