Autore Topic: aiuto non riesco a far scrivere file  (Letto 301 volte)

Offline coverbags

  • Nuovo arrivato
  • *
  • Post: 30
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    win 8.1
aiuto non riesco a far scrivere file
« il: 27 Gennaio 2015, 16:50:40 CET »
0
ciao a tutti, spero possiate aiutarmi.

sto cercando di far scrivere la mia app , che rappresenta un esercizio didattico, su un file di testo interno alla memoria ( no sd )

allego il codice

riuscite a darmi una mano ?

il file non scrive.

Codice (XML): [Seleziona]
package com.example.vincenzo.esercizio;

import android.content.Context;
import android.content.Intent;
import android.os.Environment;
import android.provider.ContactsContract;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;

import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.io.FileNotFoundException;

import static java.sql.DriverManager.println;


public class MainActivity extends ActionBarActivity {

    File f=new File("box");
    public void scrivi(String data)
    {try {

        FileOutputStream fos = new FileOutputStream(f);
        PrintWriter pw = new PrintWriter(fos);
        pw.write("");
    }
    catch(FileNotFoundException e ){
        Toast t = Toast.makeText(this, ("Il FILE NON ESITE"), Toast.LENGTH_LONG);
        t.show();

    }
    }

    public void read( String word)
    {try{
        FileInputStream fis = new FileInputStream(f);
        BufferedReader br = new BufferedReader(new InputStreamReader(fis));
        String line="";
        while((line=br.readLine())!=null);
        println(line);
    }

    catch(FileNotFoundException n){Toast x = Toast.makeText(this, ("Il FILE NON SI PUO' LEGGERE"), Toast.LENGTH_LONG);
        x.show();}
        catch(IOException w){{Toast q = Toast.makeText(this, ("c'e' un problema"), Toast.LENGTH_LONG);
            q.show();}}
    }
    @Override
    protected void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            ArrayList lista = new ArrayList();
            Intent j = getIntent();
            String nome = j.getStringExtra("nome");
            lista.add(nome);
            scrivi(nome);








        if(nome!=null)

    {

        Toast toast = Toast.makeText(this, ("ciao " + " " + nome), Toast.LENGTH_LONG);
        toast.show();
    }}







    public void go(View v){
        Intent intent=new Intent(this,SecondActivity.class);
        startActivity(intent);


    }
    public void time(View c){
        Intent i=new Intent(this,ActivityPicker.class);
        startActivity(i);
    }

    public void pass(View p){
        EditText nome6=(EditText)findViewById(R.id.nome6);
        String inviaDati = nome6.getText().toString();
        read(inviaDati);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

Offline gabric

  • Utente senior
  • ****
  • Post: 613
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:aiuto non riesco a far scrivere file
« Risposta #1 il: 27 Gennaio 2015, 17:28:19 CET »
0
Domanda banale,
Hai inserito i permessi


public static final String WRITE_EXTERNAL_STORAGE
Added in
API level 4

Allows an application to write to external storage.
Note: If both your
[/color]minSdkVersion[/url][/color][/font] and [/size]targetSdkVersion[/size][/color] values are set to 3 or lower, the system implicitly grants your app this permission. If you don't need this permission, be sure your [/size]targetSdkVersion[/size][/color] is 4 or higher.
Starting in API level 19, this permission is not required to read/write files in your application-specific directories returned by [/size]
getExternalFilesDir(String)[/size] and [/color]getExternalCacheDir().
Constant Value: "android.permission.WRITE_EXTERNAL_STORAGE"

Offline coverbags

  • Nuovo arrivato
  • *
  • Post: 30
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    win 8.1
Re:aiuto non riesco a far scrivere file
« Risposta #2 il: 27 Gennaio 2015, 17:31:12 CET »
0
no perche' scrivo su memoria interna

i permessi ci vogliono solo per quella esterna o sbaglio ?

ci sto sbattendo la testa da tre giorni .

Offline gabric

  • Utente senior
  • ****
  • Post: 613
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:aiuto non riesco a far scrivere file
« Risposta #3 il: 28 Gennaio 2015, 08:43:40 CET »
0
se non dico una castroneria, la memoria interna è solo la cartella "data" privata per ogni applicazione.
La memoria esterna sono tutte le altre cartelle, indipendentemente se su sd o meno.
Ad esempio io uso un nexus che non ha memoria esterna, eppure il permesso lo metto lo stesso

Offline coverbags

  • Nuovo arrivato
  • *
  • Post: 30
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    win 8.1
Re:aiuto non riesco a far scrivere file
« Risposta #4 il: 28 Gennaio 2015, 15:50:14 CET »
0
si hai ragione, android dovrebbe avere tre livelli di memoria.
su quella interna e' comunque possibile scrivere e leggere , secondo la guida ufficiale di google ,  i metodi FileInputStream  e File OutPUTsTREM dovrebbero anche creare fisicamente il file ove mai non fosse presente

tuttavia a me non funziona e questo resta un mistero per ora.
se avete suggerimenti li accetto volentieri