web-dev-qa-db-fra.com

lire un fichier spécifique de sdcard sous android

comment lire un fichier spécifique depuis sdcard. J'ai poussé le fichier dans sdcard via DDMS et j'essaie de le lire de cette façon, mais cela me donne une exception. Quelqu'un peut-il me dire comment pointer exactement sur ce fichier?

mon code est le suivant.

String path = Environment.getExternalStorageDirectory().getAbsolutePath();
FileInputStream iStream =  new FileInputStream(path);
22
sajjoo

Vous essayez de lire un répertoire ... ce dont vous avez besoin, c'est le fichier! Faites quelque chose comme ça ... alors, vous pouvez lire le fichier comme bon vous semble.

File dir = Environment.getExternalStorageDirectory();
File yourFile = new File(dir, "path/to/the/file/inside/the/sdcard.ext");
47
Cristian

Pour lire n'importe quel fichier (CSV dans mon cas) depuis le stockage externe, nous avons besoin d'un chemin d'accès. Une fois que vous avez un chemin d'accès, vous pouvez le faire comme ceci ... 

void readFileData(String path) throws FileNotFoundException 
    {

        String[] data;
        File file = new File(path);
        if (file.exists())
        {
            BufferedReader br = new BufferedReader(new FileReader(file));
            try
            {
                String csvLine;
                while ((csvLine = br.readLine()) != null)
                {
                    data=csvLine.split(",");
                    try
                    {
                        Toast.makeText(getApplicationContext(),data[0]+" "+data[1],Toast.LENGTH_SHORT).show();
                    }
                    catch (Exception e)
                    {
                        Log.e("Problem",e.toString());
                    }
                }
            }
            catch (IOException ex)
            {
                throw new RuntimeException("Error in reading CSV file: "+ex);
            }
        }
        else
        {
            Toast.makeText(getApplicationContext(),"file not exists",Toast.LENGTH_SHORT).show();
        }
    }

/*
csv file data

17IT1,GOOGLE
17IT2,Amazon
17IT3,FACEBOOK*/
0
JAYESH