2013-07-31 15 views
5

to będzie mój pierwszy wpis na SO, więc proszę bądź delikatny. Obecnie tworzę aplikację na system Android i próbuję po prostu odczytać plik .txt. Po wielu oddzielnych przeszkodach do pokonania (jest to moja pierwsza próba czytania w pliku tekstowym) natknąłem się na dość nieprzyjemny problem wyrzucanie komunikatu o błędzieRozwój Androida: plik prawdopodobnie jest skompresowany

Tego pliku nie można otworzyć jako deskryptora pliku; prawdopodobnie jest skompresowany.

assetmgr = thiscontext.getAssets(); 
try { 
    descriptor = assetmgr.openFd("level1.txt"); 
} catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

Powyższy fragment kodu jest po prostu próbą odczytania w pliku tekstowym. Jednak zwraca wartość zerową do deskryptora, co oczywiście powoduje błędy w dalszej linii.

inputStream = new FileReader(descriptor.getFileDescriptor()); 

To jest linia inicjalizująca strumień wejściowy do analizowania pliku tekstowego w pętli utworzonej z tego zakresu.

Mój problem polega na tym, w jaki sposób naprawić niepoprawne otwieranie pliku txt i jego kompresję.

Jeśli popełniłem błędy w wysyłaniu, proszę dać mi znać, żebym mógł je poprawić, aby uzyskać najlepszą możliwą radę!

Pozdrawiam!

+0

gdzie umieściłeś plik level1.txt? – wtsang02

+0

Witaj, @ Wtsang02. Umieściłem plik w folderze zasobów. Dla mnie osobiście będzie to AndroidDevelopment/crisis/assets. – user2639049

Odpowiedz

5

Mój problem polega na tym, w jaki sposób naprawić niepoprawne otwieranie pliku TXT i czy jest on kompresowany.

Zamiast wywoływać openFd(), zadzwoń open(), aby uzyskać InputStream bezpośrednio i zastąpić FileReader z InputStreamReader (jeśli naprawdę chcesz interfejs Reader).

+0

Wygląda na to, że usunąłem moje komunikaty o błędach. Wielkie dzięki. Nie osiągam oczekiwanych rezultatów, ale jest to kolejna przeszkoda, która została później wyjaśniona. – user2639049

+5

Używam AssetsFileDiscriptor w dostawcy treści i muszę zwrócić ten plik AssetFileDiscriptor Nie mogę zwrócić InputStream, więc co teraz mogę zrobić? –

Powiązane problemy