Autore Topic: problema creazione/lettura file  (Letto 1370 volte)

Offline jusepp

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S3 - Samsung Galaxy Tab 2
  • Sistema operativo:
    Windows 7 - Windows 8
problema creazione/lettura file
« il: 29 Novembre 2011, 09:47:35 CET »
0
salve
sto creando una applicazione k deve prima creare un file .txt, quindi lo deve scrivere e successivamente lo deve leggere...
cercando tra i post qui sul forum ho trovato il seguente codice

uso un emulatore Android 2.2

Codice (Java): [Seleziona]
private void saveFile() {
                // TODO Auto-generated method stub
                try {
                       final String TESTSTRING = new String("Hello Android");
                       FileOutputStream fOut = openFileOutput("testo.txt", MODE_WORLD_WRITEABLE);
                       OutputStreamWriter osw = new OutputStreamWriter(fOut);
                       osw.write(TESTSTRING);
                       output.setText("creazione e scrittura eseguita");
                       osw.flush();
                       osw.close();
                } catch (IOException ioe) {
                        ioe.printStackTrace();
              output.setText("errore");
            }
ho inserito i permessi
Codice (XML): [Seleziona]
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>dentro il file manifest all'interno dell'activity corrispondente...

questa funzione dovrebbe solo creare il file e quindi visualizzare su una textview un feedback, ma quando viene eseguita l'applicazione va in crash...

vi allego il LogCat

Codice: [Seleziona]
11-29 08:46:22.525: D/dalvikvm(287): GC_EXTERNAL_ALLOC freed 797 objects / 55744 bytes in 53ms
11-29 08:46:25.065: D/AndroidRuntime(287): Shutting down VM
11-29 08:46:25.065: W/dalvikvm(287): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
11-29 08:46:25.085: E/AndroidRuntime(287): FATAL EXCEPTION: main
11-29 08:46:25.085: E/AndroidRuntime(287): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.mobile.sms/com.mobile.sms.StoricoActivity}: java.lang.NullPointerException
11-29 08:46:25.085: E/AndroidRuntime(287):         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
11-29 08:46:25.085: E/AndroidRuntime(287):         at android.app.ActivityThread.startActivityNow(ActivityThread.java:2503)
11-29 08:46:25.085: E/AndroidRuntime(287):         at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)
11-29 08:46:25.085: E/AndroidRuntime(287):         at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)
11-29 08:46:25.085: E/AndroidRuntime(287):         at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:651)
11-29 08:46:25.085: E/AndroidRuntime(287):         at android.widget.TabHost.setCurrentTab(TabHost.java:323)
11-29 08:46:25.085: E/AndroidRuntime(287):         at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:129)
11-29 08:46:25.085: E/AndroidRuntime(287):         at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:453)
11-29 08:46:25.085: E/AndroidRuntime(287):         at android.view.View.performClick(View.java:2408)
11-29 08:46:25.085: E/AndroidRuntime(287):         at android.view.View$PerformClick.run(View.java:8816)
11-29 08:46:25.085: E/AndroidRuntime(287):         at android.os.Handler.handleCallback(Handler.java:587)
11-29 08:46:25.085: E/AndroidRuntime(287):         at android.os.Handler.dispatchMessage(Handler.java:92)
11-29 08:46:25.085: E/AndroidRuntime(287):         at android.os.Looper.loop(Looper.java:123)
11-29 08:46:25.085: E/AndroidRuntime(287):         at android.app.ActivityThread.main(ActivityThread.java:4627)
11-29 08:46:25.085: E/AndroidRuntime(287):         at java.lang.reflect.Method.invokeNative(Native Method)
11-29 08:46:25.085: E/AndroidRuntime(287):         at java.lang.reflect.Method.invoke(Method.java:521)
11-29 08:46:25.085: E/AndroidRuntime(287):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-29 08:46:25.085: E/AndroidRuntime(287):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-29 08:46:25.085: E/AndroidRuntime(287):         at dalvik.system.NativeStart.main(Native Method)
11-29 08:46:25.085: E/AndroidRuntime(287): Caused by: java.lang.NullPointerException
11-29 08:46:25.085: E/AndroidRuntime(287):         at android.content.ContextWrapper.getResources(ContextWrapper.java:80)
11-29 08:46:25.085: E/AndroidRuntime(287):         at android.view.View.<init>(View.java:1810)
11-29 08:46:25.085: E/AndroidRuntime(287):         at android.view.View.<init>(View.java:1856)
11-29 08:46:25.085: E/AndroidRuntime(287):         at android.widget.TextView.<init>(TextView.java:327)
11-29 08:46:25.085: E/AndroidRuntime(287):         at android.widget.TextView.<init>(TextView.java:321)
11-29 08:46:25.085: E/AndroidRuntime(287):         at android.widget.TextView.<init>(TextView.java:316)
11-29 08:46:25.085: E/AndroidRuntime(287):         at com.mobile.sms.StoricoActivity.<init>(StoricoActivity.java:13)
11-29 08:46:25.085: E/AndroidRuntime(287):         at java.lang.Class.newInstanceImpl(Native Method)
11-29 08:46:25.085: E/AndroidRuntime(287):         at java.lang.Class.newInstance(Class.java:1429)
11-29 08:46:25.085: E/AndroidRuntime(287):         at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
11-29 08:46:25.085: E/AndroidRuntime(287):         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
11-29 08:46:25.085: E/AndroidRuntime(287):         ... 18 more
11-29 08:46:28.296: I/Process(287): Sending signal. PID: 287 SIG: 9
« Ultima modifica: 29 Novembre 2011, 10:11:05 CET da jusepp »

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:problema creazione/lettura file
« Risposta #1 il: 29 Novembre 2011, 09:52:41 CET »
0
Codice: [Seleziona]
11-29 08:46:25.085: E/AndroidRuntime(287):         at com.mobile.sms.StoricoActivity.<init>(StoricoActivity.java:13)

Offline jusepp

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S3 - Samsung Galaxy Tab 2
  • Sistema operativo:
    Windows 7 - Windows 8
Re:problema creazione/lettura file
« Risposta #2 il: 29 Novembre 2011, 09:59:38 CET »
0
????

nn ho capito...

se vuoi ti spiego meglio la mia applicazione... è un applicazione con un layout tabwidget e questo pezzo di codice l'ho inserito nel file activity corrispondente alla pagina "storico" solo come prova del codice...

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:problema creazione/lettura file
« Risposta #3 il: 29 Novembre 2011, 10:11:33 CET »
+1
Nel tuo primo post hai postato il logcat.

Il logcat serve per capire come mai è andata in errore la tua applicazione ed a che riga del codice.

Secondo il tuo logcat, la tua applicazione è andata in NullPointerException alla riga che ti ho evidenziato nel mio post.

Adesso hai tutte le informazioni per risolvere il tuo problema. ;)

Offline jusepp

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S3 - Samsung Galaxy Tab 2
  • Sistema operativo:
    Windows 7 - Windows 8
Re:problema creazione/lettura file
« Risposta #4 il: 29 Novembre 2011, 10:34:03 CET »
0
grazie ancora!

leggendo il log cat avevo capito k era un nulpointexception ma nn capivo esattamente quale fosse il problema... andando alla riga giusta, ho capito k la textview era inizializzata male...  :-[ :-[

Offline froyo

  • Utente junior
  • **
  • Post: 81
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    desire
  • Sistema operativo:
    2.3
Re:problema creazione/lettura file
« Risposta #5 il: 30 Novembre 2011, 23:19:48 CET »
0
jusepp puoi postare il codice completo per la creazione lettura e scrittura
grazie

Offline jusepp

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S3 - Samsung Galaxy Tab 2
  • Sistema operativo:
    Windows 7 - Windows 8
Re:problema creazione/lettura file
« Risposta #6 il: 01 Dicembre 2011, 00:43:16 CET »
0
creazione e scrittura

Codice (Java): [Seleziona]
public void crea(String theObjectAr, Context ctx){
                FileOutputStream fos;
                try {
                        fos = ctx.openFileOutput(FILE_NAME, Context.MODE_PRIVATE);
                ObjectOutputStream oos = new ObjectOutputStream(fos);
                oos.writeObject(theObjectAr);
                oos.close();
                n=new String("creazione e scrittura eseguita");
            } catch (FileNotFoundException e) {
                e.printStackTrace();
                n=new String("errore1");
            }catch(IOException e){
                e.printStackTrace();
                n=new String("errore2");
            }


lettura:
Codice (Java): [Seleziona]
public String leggi(Context ctx){
                String readString;
                try {
                BufferedReader br = new BufferedReader(new InputStreamReader(ctx.openFileInput(FILE_NAME)));
                readString=br.readLine();
                readString+=br.readLine();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                readString="errore";
            }
                return readString;

        }

Offline froyo

  • Utente junior
  • **
  • Post: 81
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    desire
  • Sistema operativo:
    2.3
Re:problema creazione/lettura file
« Risposta #7 il: 01 Dicembre 2011, 01:23:47 CET »
0
Per la lettura ho usato questa classe read però non funziona helppp
Codice (Java): [Seleziona]
public class read {
        public static File sd = Environment.getExternalStorageDirectory();
        public static File f = new File(sd, "infi.txt");
        static FileReader fr = null;
        static BufferedReader br = null;

        public static String main(String readString) {
                //String readString;
                try {
                        fr = new FileReader(f);
                        br = new BufferedReader(fr);
                        readString = br.readLine();
                        readString += br.readLine();
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                        readString = "errore";
                }
                return readString;

}
       
}