Próbuję odczytać plik tekstowy wiersz po wierszu przy użyciu InputStream z katalogu zasobów w systemie Android.
Chcę przekonwertować InputStream na BufferedReader, aby móc korzystać z readLine ().
Mam następujący kod:
InputStream is;
is = myContext.getAssets().open ("file.txt");
BufferedReader br = new BufferedReader (is);
Trzecia linia pomija następujący błąd:
Wiele znaczników w tej linii Konstruktor BufferedReader (InputStream) jest niezdefiniowany.
To, co próbuję zrobić w C ++, to coś takiego:
StreamReader file;
file = File.OpenText ("file.txt");
line = file.ReadLine();
line = file.ReadLine();
...
Co robię źle lub jak mam to zrobić? Dzięki!
java
android
inputstream
readline
bufferedreader
karse23
źródło
źródło
BufferedReader br = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8));
dodane w Javie 7Konstruktor BufferedReader przyjmuje czytnik jako argument, a nie InputStream. Najpierw powinieneś utworzyć Czytnik ze swojego strumienia, na przykład:
Najlepiej jest również podać Charset lub nazwę kodowania znaków do konstruktora StreamReader. Ponieważ strumień dostarcza tylko bajtów, konwersja ich na tekst oznacza, że kodowanie musi być znane. Jeśli tego nie określisz, przyjmowana jest wartość domyślna systemu.
źródło
źródło