Autore Topic: Creazione nuovo file .txt  (Letto 747 volte)

Offline Andrea°Dev

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Sony XPeria S
  • Sistema operativo:
    Windows 7
Creazione nuovo file .txt
« il: 23 Dicembre 2013, 16:23:11 CET »
0
Salve a tutti!

Ho un problema con la creazione di un file txt sulla memoria esterna del telefono.
Utilizzo il seguente codice:
Codice (Java): [Seleziona]
final String PATH = "/data/data/";
        File ffile = new File(PATH + "datiloginpos.txt");
       
        try{
        if (ffile.exists()){
              Log.i("FILE", "Esiste");}
         else if (ffile.createNewFile()){
                      Log.i("FILE", "Creato");
}}
          catch (IOException e) {
            e.printStackTrace();
          }  
   
Purtroppo invece di crearmi il file ricevo un errore.
Ecco il Logcat:
Codice: [Seleziona]
12-23 16:17:51.024: E/Trace(15484): error opening trace file: No such file or directory (2)
12-23 16:17:51.024: D/ActivityThread(15484): setTargetHeapUtilization:0.25
12-23 16:17:51.024: D/ActivityThread(15484): setTargetHeapIdealFree:8388608
12-23 16:17:51.024: D/ActivityThread(15484): setTargetHeapConcurrentStart:2097152
12-23 16:17:51.044: W/System.err(15484): java.io.IOException: open failed: EACCES (Permission denied)
12-23 16:17:51.044: W/System.err(15484):         at java.io.File.createNewFile(File.java:940)
12-23 16:17:51.044: W/System.err(15484):         at com.example.mposes.txtdata.<init>(txtdata.java:19)
12-23 16:17:51.044: W/System.err(15484):         at java.lang.Class.newInstanceImpl(Native Method)
12-23 16:17:51.044: W/System.err(15484):         at java.lang.Class.newInstance(Class.java:1319)
12-23 16:17:51.044: W/System.err(15484):         at android.app.Instrumentation.newActivity(Instrumentation.java:1053)
12-23 16:17:51.044: W/System.err(15484):         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1986)
12-23 16:17:51.044: W/System.err(15484):         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2096)
12-23 16:17:51.044: W/System.err(15484):         at android.app.ActivityThread.access$600(ActivityThread.java:138)
12-23 16:17:51.044: W/System.err(15484):         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1207)
12-23 16:17:51.044: W/System.err(15484):         at android.os.Handler.dispatchMessage(Handler.java:99)
12-23 16:17:51.044: W/System.err(15484):         at android.os.Looper.loop(Looper.java:213)
12-23 16:17:51.044: W/System.err(15484):         at android.app.ActivityThread.main(ActivityThread.java:4787)
12-23 16:17:51.044: W/System.err(15484):         at java.lang.reflect.Method.invokeNative(Native Method)
12-23 16:17:51.044: W/System.err(15484):         at java.lang.reflect.Method.invoke(Method.java:511)
12-23 16:17:51.044: W/System.err(15484):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
12-23 16:17:51.044: W/System.err(15484):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
12-23 16:17:51.044: W/System.err(15484):         at dalvik.system.NativeStart.main(Native Method)
12-23 16:17:51.044: W/System.err(15484): Caused by: libcore.io.ErrnoException: open failed: EACCES (Permission denied)
12-23 16:17:51.054: W/System.err(15484):         at libcore.io.Posix.open(Native Method)
12-23 16:17:51.054: W/System.err(15484):         at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
12-23 16:17:51.054: W/System.err(15484):         at java.io.File.createNewFile(File.java:933)
12-23 16:17:51.054: W/System.err(15484):         ... 16 more

Grazie in anticipo per l'aiuto.
Un saluto e buon Natale!
Andrea

Offline vincenzoc

  • Utente junior
  • **
  • Post: 148
  • Respect: +47
    • Google+
    • cerminarav
    • Mostra profilo
    • Mie applicazioni sul Play Store
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Vincenzo Cerminara
  • Sistema operativo:
    Arch Linux
Re:Creazione nuovo file .txt
« Risposta #1 il: 23 Dicembre 2013, 23:15:46 CET »
+1
Usa
Codice (Java): [Seleziona]
final String PATH = Environment.getExternalStorageDirectory()+"/";
Ringrazia chi ti aiuta sul forum con l'apposito pulsante :P
Scarica Yazzy

Offline Andrea°Dev

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Sony XPeria S
  • Sistema operativo:
    Windows 7
Re:Creazione nuovo file .txt
« Risposta #2 il: 08 Gennaio 2014, 16:34:30 CET »
0
Funziona, grazie.


Un'altra cosa quando vado ad aprire il file che ho creato:
Codice (Java): [Seleziona]
in = this.getAssets().open(Environment.getExternalStorageDirectory()+"/miofile.txt");

Ricevo questo errore:

 
Codice: [Seleziona]
java.io.FileNotFoundException: /storage/sdcard0/miofile.txt

Il file esiste, non riesco a capire perchè ricevo l'errore.


Ho impostato anche i permessi nel manifest:
Codice: [Seleziona]
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>


Grazie,
Andrea
« Ultima modifica: 08 Gennaio 2014, 16:37:27 CET da Andrea°Dev »

Offline Gigiuz

  • Utente normale
  • ***
  • Post: 187
  • Respect: +23
    • Google+
    • gigiuzzo81
    • Gigiuz81
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Note III
  • Play Store ID:
    GGXSoft
  • Sistema operativo:
    Windows 7 64bit, OS X (virtualized), Ubuntu
Re:Creazione nuovo file .txt
« Risposta #3 il: 09 Gennaio 2014, 18:17:06 CET »
0
Se stai cercando di scrivere nella stessa dir dove risiede l'app (Internal Memory) dovresti fare così:

Codice (Java): [Seleziona]
File ffile = new File(context.getFilesDir(), "datiloginpos.txt"); // <- Importante: context.getFilesDir()
       
// Il resto rimane invariato
try {
   if (ffile.exists()) {
          Log.i("FILE", "Esiste");
   } else if (ffile.createNewFile()) {
          Log.i("FILE", "Creato");
   }
} catch (IOException e) {
          e.printStackTrace();
}  

Tratto da Saving Files

Prova e facci sapere :)
Hai bisogno di implementare un sistema di "codici seriali di sblocco" nella tua applicazione? Dai un'occhiata alla mia libreria: RemoteUnlocker