Autore Topic: Lettura/Scrittura File  (Letto 3290 volte)

Offline asterix07

  • Nuovo arrivato
  • *
  • Post: 45
  • Respect: 0
    • Mostra profilo
Lettura/Scrittura File
« il: 14 Novembre 2010, 18:51:05 CET »
0
Ciao, sto creando un applicazione che dovrebbe memorizzate in un file la data e l'ora ogno "TOT" secondi.
Ho fatto una cosa del genere
Codice (Java): [Seleziona]
package org.example.batterylife;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.text.format.Time;
import android.widget.TextView;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import java.io.*;
import java.lang.*;



import android.os.SystemClock;

public class counter extends Activity {
    /** Called when the activity is first created. */
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.output);
   
        try{
        final FileWriter file=new FileWriter("Data.txt");
        Date t1=new Date();
        file.append(t1.toString());
       
        int startUp = 2000;     // millisecondi di attesa per fare partire il timer
        int periodo = 1000;     // millisecondi di attesa per la ripetizione del timer
        //final TextView out = (TextView) findViewById(R.id.out);
        Timer timer = new Timer();      //timer
       
        //il metodo run viene eseguito ad ogni scadenza del timer
        timer.scheduleAtFixedRate(
                new TimerTask() {
                       
                       
                        public void run() {
                                Date t=new Date();
                                System.out.println(t.toString());
                               
                                try{
                                file.append(t.toString());
                                }catch(IOException ex){
                                        Log.e(this.getClass().getName(), "Error creating tables, indexes and debug data", ex);
                                }
                               
                               
                               
                             
                        }
                },
                startUp, periodo
        );
        }
        catch(IOException e){
                Log.e(this.getClass().getName(), "Error creating tables, indexes and debug data", e);
        }
       
       
     
   
}}

ora secondo me non scrive nulla. Cosa sbaglio?
(tralasciate gli import inutilizzati e il System.out.println)
« Ultima modifica: 14 Novembre 2010, 19:05:56 CET da Qlimax, Reason: usare il bottone con la tazza per postare codice java »

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Lettura/Scrittura File
« Risposta #1 il: 14 Novembre 2010, 19:19:17 CET »
+1
Codice (Java): [Seleziona]
final FileWriter file=new FileWriter("Data.txt");non puoi scrivere un file lì.

prova a seguire questa guida
Salvare un file su sd card (e scriverci del testo dentro) - Android Developers Italia
« Ultima modifica: 14 Novembre 2010, 19:22:35 CET da Qlimax »

Offline asterix07

  • Nuovo arrivato
  • *
  • Post: 45
  • Respect: 0
    • Mostra profilo
Re:Lettura/Scrittura File
« Risposta #2 il: 14 Novembre 2010, 20:11:24 CET »
0
Si l'avevo gia visto, ottenendo questo codice:
Codice (Java): [Seleziona]
package org.example.batterylife;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.text.format.Time;
import android.widget.TextView;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import java.io.*;
import java.lang.*;
import android.os.Environment;



import android.os.SystemClock;

public class counter extends Activity {
    /** Called when the activity is first created. */
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.output);
   
        try{
       
       
        int startUp = 2000;     // millisecondi di attesa per fare partire il timer
        int periodo = 1000;     // millisecondi di attesa per la ripetizione del timer
        //final TextView out = (TextView) findViewById(R.id.out);
        Timer timer = new Timer();      //timer
       
        //il metodo run viene eseguito ad ogni scadenza del timer
        timer.scheduleAtFixedRate(
                new TimerTask() {
                       
                       
                        public void run() {
                                Date t=new Date();
                                System.out.println(t.toString());
                               
                                private File sd = Environment.getExternalStorageDirectory();
                                private File f = new File(sd, "nome_file.txt");

                                public void write (String Data){
                                FileWriter fw = null;
                                BufferedWriter bw = null;
                               
                                  try{
                                        fw = new FileWriter(f, true);
                                        bw = new BufferedWriter(fw);
                                        bw.write(Data);
                                        bw.close();
                                        fw.close();
                                         //Toast.makeText(context, "Settings saved",Toast.LENGTH_SHORT).show();
                                      }
                                    catch (IOException e) {      
                                      e.printStackTrace();
                                      //Toast.makeText(context, "Settings not saved",Toast.LENGTH_SHORT).show();
                                     }
                                    }
                               
                                }
                },
                startUp, periodo
        );
        }
        catch(IOException e){
                Log.e(this.getClass().getName(), "Error creating tables, indexes and debug data", e);
        }
       
       
     
   
}}

ho pero un errore in corrispondenza di public void write(String Data):Multiple Markers in this line
« Ultima modifica: 15 Novembre 2010, 10:11:33 CET da asterix07 »

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Lettura/Scrittura File
« Risposta #3 il: 14 Novembre 2010, 20:37:11 CET »
0
asterix07 ti conviene studiare un pochino Java prima di lavorare con Android.

Offline asterix07

  • Nuovo arrivato
  • *
  • Post: 45
  • Respect: 0
    • Mostra profilo
Re:Lettura/Scrittura File
« Risposta #4 il: 15 Novembre 2010, 09:49:06 CET »
0
Si in effetti lo rispolverato dopo molto tempo, comunque focalizzandomi solo sulla sulla funzione write presa singolarmente non riesco a vedere errori di sintassi....

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Lettura/Scrittura File
« Risposta #5 il: 15 Novembre 2010, 10:04:30 CET »
0
Puoi usare i tag java quando posti il codice? p.f.
Ti ho già modificato il primo post. guarda come ho fatto.

grazie

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Lettura/Scrittura File
« Risposta #6 il: 15 Novembre 2010, 10:59:35 CET »
0
Si in effetti lo rispolverato dopo molto tempo, comunque focalizzandomi solo sulla sulla funzione write presa singolarmente non riesco a vedere errori di sintassi....

Beh il primo grande errore è dovuto al fatto che non puoi dichiare dei metodi all'interno di altri.

Offline asterix07

  • Nuovo arrivato
  • *
  • Post: 45
  • Respect: 0
    • Mostra profilo
Re:Lettura/Scrittura File
« Risposta #7 il: 15 Novembre 2010, 11:07:38 CET »
0
Si di quello me ne sono reso conto,non ho ripostato il codice comunque ho portato fuori il metodo write , richiamandolo poi all'interno.m  L'errore pero è sempre il solito. Mi sfugge qualcosa di banale?

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Lettura/Scrittura File
« Risposta #8 il: 16 Novembre 2010, 11:38:18 CET »
0
Quel Data maiuscolo non mi convince.. Tra l'altro per convenzione le variabili vanno minuscole
Postate il LogCat LogCat LogCat LogCat LogCat

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Lettura/Scrittura File
« Risposta #9 il: 16 Novembre 2010, 17:36:48 CET »
0
Si di quello me ne sono reso conto,non ho ripostato il codice comunque ho portato fuori il metodo write , richiamandolo poi all'interno.m  L'errore pero è sempre il solito. Mi sfugge qualcosa di banale?

riposta il codice che hai adesso.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Lettura/Scrittura File
« Risposta #10 il: 16 Novembre 2010, 17:43:47 CET »
0
comunque, prova a fare questo:

Codice (Java): [Seleziona]
timer.scheduleAtFixedRate( (new TimerTask() {
                               
    @Override
    public void run() {
        ...
        ...
    }
})
,startUp, periodo);
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline asterix07

  • Nuovo arrivato
  • *
  • Post: 45
  • Respect: 0
    • Mostra profilo
Re:Lettura/Scrittura File
« Risposta #11 il: 16 Novembre 2010, 19:17:52 CET »
0
tralasciando un attimo la parte di timer vorrei focalizzarmi un attimo solo sulla scrittura del file.
Prendendo in esempio questo codice che ho fatto:
Codice (Java): [Seleziona]
package org.example.scriviFile;

import android.app.Activity;
import java.io.*;
import android.os.Bundle;

public class scriviFile extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        String path="/";
        String nomeFile="file.txt";
       
        File file= new File(path,nomeFile);
        try{
        FileOutputStream fileStream=new FileOutputStream(file);
        }
        catch(FileNotFoundException e){
                System.out.println("ECCEZZIONE SOLLEVATA");
        }
       
       
    }
}

Mandandolo in esecuzione mi solleva l eccezione. Penso che il problema sia dovuto alla creazione del file come va fatta? Io ho provato usando File è giusto? cosa metto come PATH? Devo aggiungere qualcosa anche al Manifest?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re: Lettura/Scrittura File
« Risposta #12 il: 16 Novembre 2010, 20:55:33 CET »
0
Ti è già stato linkato un tutorial o sbaglio?

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Lettura/Scrittura File
« Risposta #13 il: 16 Novembre 2010, 20:58:00 CET »
+1
asterix... non puoi scrivere files nella root di android (per fortuna :money_mouth:)

puoi scrivere i files nella memoria interna del telefono :
Data Storage | Android Developers

o nella memoria esterna:
Data Storage | Android Developers
Salvare un file su sd card (e scriverci del testo dentro) - Android Developers Italia

Offline asterix07

  • Nuovo arrivato
  • *
  • Post: 45
  • Respect: 0
    • Mostra profilo
Re:Lettura/Scrittura File
« Risposta #14 il: 16 Novembre 2010, 21:01:28 CET »
0
si si lo so :) è che non sapendo cosa mettere come PATH ho lasciato solo "/".