Sprawy są proste, ale nie działają tak, jak powinny.
Mam plik tekstowy dodany jako surowiec. Plik tekstowy zawiera tekst taki jak:
b) JEŚLI OBOWIĄZUJĄCE PRAWO WYMAGA JAKICHKOLWIEK GWARANCJI W ODNIESIENIU DO OPROGRAMOWANIA, WSZYSTKIE TAKIE GWARANCJE SĄ OGRANICZONE DO DZIEWIĘCIĘCIU (90) DNI OD DATY DOSTAWY.
(c) ŻADNE USTNE ANI PISEMNE INFORMACJE ANI PORADY UDZIELANE PRZEZ WIRTUALNĄ ORIENTACJĘ, JEJ DEALERÓW, DYSTRYBUTORÓW, AGENTÓW ANI PRACOWNIKÓW NIE STANOWIĄ GWARANCJI ANI W ŻADNYM SPOSÓB ZWIĘKSZA ZAKRESU JAKIEJKOLWIEK GWARANCJI PRZEDSTAWIONEJ TUTAJ.
(d) (tylko USA) NIEKTÓRE STANY NIE ZEZWALAJĄ NA WYŁĄCZENIE GWARANCJI DOMNIEMANYCH, WIĘC POWYŻSZE WYŁĄCZENIE MOŻE NIE DOTYCZYĆ CIEBIE. NINIEJSZA GWARANCJA DAJE UŻYTKOWNIKOWI OKREŚLONE PRAWA, A UŻYTKOWNIK MOŻE MIEĆ RÓWNIEŻ INNE PRAWA, KTÓRE RÓŻNIĄ SIĘ W ZALEŻNOŚCI OD KRAJU.
Na moim ekranie mam taki układ:
<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>
Kod do odczytu surowego zasobu to:
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();
}
Pojawia się tekst, ale po każdej linii pojawia się dziwny znak [] Jak mogę usunąć ten znak? Myślę, że to New Line.
ROZWIĄZANIE PRACY
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();
}
Odpowiedzi:
Co się stanie, jeśli użyjesz bufora BufferedReader opartego na znakach zamiast bajtowego InputStream?
Nie zapominaj, że
readLine()
pomija nowe linie!źródło
Możesz użyć tego:
źródło
Jeśli używasz IOUtils z Apache „commons-io”, jest to jeszcze łatwiejsze:
Zależności: http://mvnrepository.com/artifact/commons-io/commons-io
Maven:
Gradle:
źródło
Cóż, z Kotlinem możesz to zrobić tylko w jednej linii kodu:
Lub nawet zadeklaruj funkcję rozszerzenia:
A potem po prostu użyj go od razu:
źródło
Raczej zrób to w ten sposób:
Z działania dodaj
lub z przypadku testowego , dodaj
I uważaj na obsługę błędów - nie wychwytuj i nie ignoruj wyjątków, gdy zasoby muszą istnieć lub coś jest (bardzo?) Nie tak.
źródło
openRawResource()
?To kolejna metoda, która na pewno zadziała, ale nie mogę jej sprawić, aby czytać wiele plików tekstowych w celu wyświetlenia wielu widoków tekstu w ramach jednej czynności. Każdy może pomóc?
źródło
@borislemke możesz to zrobić w podobny sposób jak
źródło
Oto mieszanka rozwiązań Weekens i Vovodroid.
Jest bardziej poprawne niż rozwiązanie Vovodroid i bardziej kompletne niż rozwiązanie Weekensa.
źródło
Oto prosta metoda odczytu pliku tekstowego z folderu raw :
źródło
Oto realizacja w Kotlinie
źródło
1. Najpierw utwórz folder Katalog i nazwij go raw w folderze res 2. utwórz plik .txt w folderze katalogu raw, który utworzyłeś wcześniej i nadaj mu dowolną nazwę, np. Articles.txt .... 3. skopiuj i wklej plik. tekst, który chcesz umieścić w utworzonym pliku .txt „artykuły.txt” 4. nie zapomnij dołączyć widoku tekstu do pliku main.xml MainActivity.java
Mam nadzieję, że zadziałało!
źródło
źródło