2013-07-31 11 views
5

questo sarà il mio primo post su SO quindi per favore sii gentile. Attualmente sto sviluppando un'applicazione per Android e sto tentando di leggere semplicemente un file .txt. Dopo molti ostacoli separati da superare (questo è il mio primo tentativo di lettura in un file di testo) mi sono imbattuto in un problema piuttosto sgradevole lancio del messaggio di erroreSviluppo Android: il file è probabilmente compresso

Questo file non può essere aperto come descrittore di file; è probabilmente compresso.

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

Il codice di cui sopra sta semplicemente tentando di leggere nel file di testo. Tuttavia, restituisce null al descrittore, il che ovviamente sta causando errori in futuro.

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

Questa è la linea che è in fase di inizializzazione l'InputStream per l'analisi del file di testo nel circuito ho creato fuori di questa portata.

Quindi il mio problema è come riparare il file txt che non si apre correttamente e viene compresso in modo appropiato.

Se ho commesso errori nel post, fatemelo sapere così posso correggerli per ottenere il miglior consiglio possibile!

Cheers!

+0

dove hai inserito questo file level1.txt? – wtsang02

+0

Ciao là @ wtsang02. Ho messo il file nella cartella delle risorse. Quindi per me personalmente sarebbe Android Development/crisis/assets. – user2639049

risposta

5

Quindi il mio problema è come posso correggere il file txt che non si apre correttamente e viene compresso in modo appropriato.

Invece di chiamare openFd(), chiamare open(), per ottenere un InputStream direttamente, e sostituire il FileReader con una InputStreamReader (se si vuole veramente un'interfaccia Reader).

+0

Sembra che abbia rimosso i miei messaggi di errore. Molte grazie. Non sto ottenendo i risultati attesi, ma questo è un altro ostacolo risolto in seguito. – user2639049

+5

Sto usando AssetsFileDiscriptor nel content provider e devo restituire questo AssetFileDiscriptor Non riesco a restituire InputStream, quindi ora cosa posso fare? –

Problemi correlati