Все просто, но не работает должным образом.
У меня есть текстовый файл, добавленный как необработанный ресурс. Текстовый файл содержит текст вроде:
b) ЕСЛИ ПРИМЕНИМЫМ ЗАКОНОДАТЕЛЬСТВОМ ТРЕБУЮТСЯ КАКИЕ-ЛИБО ГАРАНТИИ В ОТНОШЕНИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ВСЕ ТАКИЕ ГАРАНТИИ ОГРАНИЧИВАЮТСЯ ДЕЙСТВИЕМ ДЕВЯТЬ (90) ДНЕЙ С ДАТЫ ПОСТАВКИ.
(c) НИКАКАЯ УСТНАЯ ИЛИ ПИСЬМЕННАЯ ИНФОРМАЦИЯ ИЛИ СОВЕТЫ, ДАННЫЕ VIRTUAL ORIENTEERING, ЕГО ДИЛЕРЫ, ДИСТРИБЬЮТОРЫ, АГЕНТЫ ИЛИ СОТРУДНИКИ, НЕ СОЗДАЮТ ГАРАНТИИ ИЛИ ЛЮБЫМ СПОСОБОМ РАСШИРЯЮТ ОБЪЕМ ЛЮБОЙ ГАРАНТИИ, ПРЕДОСТАВЛЕННОЙ ЗДЕСЬ.
(d) (только для США) В НЕКОТОРЫХ ШТАТАХ НЕ ДОПУСКАЕТСЯ ИСКЛЮЧЕНИЕ ПОДРАЗУМЕВАЕМЫХ ГАРАНТИЙ, ПОЭТОМУ ВЫШЕУКАЗАННОЕ ИСКЛЮЧЕНИЕ МОЖЕТ К ВАМ НЕ ОТНОСИТЬСЯ. НАСТОЯЩАЯ ГАРАНТИЯ ПРЕДОСТАВЛЯЕТ ВАМ КОНКРЕТНЫЕ ЮРИДИЧЕСКИЕ ПРАВА, И ВЫ ТАКЖЕ МОЖЕТЕ ИМЕТЬ ДРУГИЕ ЮРИДИЧЕСКИЕ ПРАВА, КОТОРЫЕ РАЗЛИЧАЮТСЯ В РАЗНЫХ ШТАТАХ.
На моем экране такой макет:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_weight="1.0"
android:layout_below="@+id/logoLayout"
android:background="@drawable/list_background">
<ScrollView android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:id="@+id/txtRawResource"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="3dip"/>
</ScrollView>
</LinearLayout>
Код для чтения необработанного ресурса:
TextView txtRawResource= (TextView)findViewById(R.id.txtRawResource);
txtDisclaimer.setText(Utils.readRawTextFile(ctx, R.raw.rawtextsample);
public static String readRawTextFile(Context ctx, int resId)
{
InputStream inputStream = ctx.getResources().openRawResource(resId);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
int i;
try {
i = inputStream.read();
while (i != -1)
{
byteArrayOutputStream.write(i);
i = inputStream.read();
}
inputStream.close();
} catch (IOException e) {
return null;
}
return byteArrayOutputStream.toString();
}
Текст отображается, но после каждой строки появляется странный символ [] Как я могу удалить этот символ? Думаю, это New Line.
РАБОЧЕЕ РЕШЕНИЕ
public static String readRawTextFile(Context ctx, int resId)
{
InputStream inputStream = ctx.getResources().openRawResource(resId);
InputStreamReader inputreader = new InputStreamReader(inputStream);
BufferedReader buffreader = new BufferedReader(inputreader);
String line;
StringBuilder text = new StringBuilder();
try {
while (( line = buffreader.readLine()) != null) {
text.append(line);
text.append('\n');
}
} catch (IOException e) {
return null;
}
return text.toString();
}
Ответы:
Что если вы используете BufferedReader на основе символов вместо InputStream на основе байтов?
Не забывайте, что
readLine()
новые строки пропускаются!источник
Вы можете использовать это:
источник
Если вы используете IOUtils из apache "commons-io", это еще проще:
Зависимости: http://mvnrepository.com/artifact/commons-io/commons-io
Maven:
Gradle:
источник
Что ж, с Kotlin вы можете сделать это всего в одной строке кода:
Или даже объявить функцию расширения:
А потом сразу же используйте:
источник
Скорее сделайте это так:
Из Activity добавьте
или из тестового примера добавьте
И следите за обработкой ошибок - не перехватывайте и не игнорируйте исключения, когда ваши ресурсы должны существовать или что-то (очень?) Не так.
источник
openRawResource()
?Это еще один метод, который определенно сработает, но я не могу заставить его читать несколько текстовых файлов для просмотра в нескольких текстовых представлениях в одном действии, кто-нибудь может помочь?
источник
@borislemke, вы можете сделать это аналогичным образом, например
источник
Вот смесь решений Weekens и Vovodroid.
Это правильнее, чем решение Вводроида, и более полно, чем решение Weekens.
источник
Вот простой способ прочитать текстовый файл из необработанной папки:
источник
Вот реализация в Котлине
источник
1. Сначала создайте папку Directory и назовите ее raw внутри папки res 2. создайте файл .txt внутри папки raw-каталога, которую вы создали ранее, и дайте ему любое имя, например, articles.txt .... 3. скопируйте и вставьте файл текст, который вы хотите внутри .txt файла, который вы создали "article.txt" 4. не забудьте включить текстовое представление в свой main.xml MainActivity.java
Надеюсь, это сработало!
источник
источник