140 votes

Comment lire un fichier texte dans Android ?

Je veux lire le texte d'un fichier texte. Dans le code ci-dessous, une exception se produit (c'est-à-dire qu'elle va à l'adresse catch ). J'ai placé le fichier texte dans le dossier de l'application. Où dois-je placer ce fichier texte (mani.txt) afin de le lire correctement ?

    try
    {
        InputStream instream = openFileInput("E:\\test\\src\\com\\test\\mani.txt"); 
        if (instream != null)
        {
            InputStreamReader inputreader = new InputStreamReader(instream); 
            BufferedReader buffreader = new BufferedReader(inputreader); 
            String line,line1 = "";
            try
            {
                while ((line = buffreader.readLine()) != null)
                    line1+=line;
            }catch (Exception e) 
            {
                e.printStackTrace();
            }
         }
    }
    catch (Exception e) 
    {
        String error="";
        error=e.getMessage();
    }

274voto

Shruti Points 3073

Essayez ceci :

Je suppose que votre fichier texte est sur la carte SD.

    //Find the directory for the SD Card using the API
//*Don't* hardcode "/sdcard"
File sdcard = Environment.getExternalStorageDirectory();

//Get the text file
File file = new File(sdcard,"file.txt");

//Read text from file
StringBuilder text = new StringBuilder();

try {
    BufferedReader br = new BufferedReader(new FileReader(file));
    String line;

    while ((line = br.readLine()) != null) {
        text.append(line);
        text.append('\n');
    }
    br.close();
}
catch (IOException e) {
    //You'll need to add proper error handling here
}

//Find the view by its id
TextView tv = (TextView)findViewById(R.id.text_view);

//Set the text
tv.setText(text.toString());

Les liens suivants peuvent également vous aider :

Comment lire un fichier texte à partir de la carte SD sous Android ?

Comment lire un fichier texte dans Android ?

Android lit le texte du fichier de ressources brutes

29voto

Sandip Armal Patil Points 2058

Si vous voulez lire un fichier depuis une carte SD. Alors le code suivant pourrait vous être utile.

 StringBuilder text = new StringBuilder();
    try {
    File sdcard = Environment.getExternalStorageDirectory();
    File file = new File(sdcard,"testFile.txt");

        BufferedReader br = new BufferedReader(new FileReader(file));  
        String line;   
        while ((line = br.readLine()) != null) {
                    text.append(line);
                    Log.i("Test", "text : "+text+" : end");
                    text.append('\n');
                    } }
    catch (IOException e) {
        e.printStackTrace();                    

    }
    finally{
            br.close();
    }       
    TextView tv = (TextView)findViewById(R.id.amount);  

    tv.setText(text.toString()); ////Set the text to text view.
  }

    }

Si vous voulez lire un fichier depuis un dossier d'actifs, alors

AssetManager am = context.getAssets();
InputStream is = am.open("test.txt");

Ou si vous voulez lire ce fichier à partir de res/raw foldery, où le fichier sera indexé et sera accessible par un id dans le fichier R :

InputStream is = getResources().openRawResource(R.raw.test);     

Bon exemple de lecture d'un fichier texte à partir du dossier res/raw

8voto

Priyank Points 1377

Placez votre fichier texte dans Actif Dossier...et lire le fichier de ce dossier...

voir les liens de référence ci-dessous...

http://www.technotalkative.com/Android-read-file-from-assets/

http://sree.cc/google/reading-text-file-from-assets-folder-in-Android

Lecture d'un simple fichier texte

J'espère que cela vous aidera...

6voto

HuynhHan Points 335

Essayez ce code

public static String pathRoot = "/sdcard/system/temp/";
public static String readFromFile(Context contect, String nameFile) {
    String aBuffer = "";
    try {
        File myFile = new File(pathRoot + nameFile);
        FileInputStream fIn = new FileInputStream(myFile);
        BufferedReader myReader = new BufferedReader(new InputStreamReader(fIn));
        String aDataRow = "";
        while ((aDataRow = myReader.readLine()) != null) {
            aBuffer += aDataRow;
        }
        myReader.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return aBuffer;
}

3voto

Ram Points 657

Tout d'abord, vous stockez votre fichier texte dans le dossier raw.

private void loadWords() throws IOException {
    Log.d(TAG, "Loading words...");
    final Resources resources = mHelperContext.getResources();
    InputStream inputStream = resources.openRawResource(R.raw.definitions);
    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

    try {
        String line;
        while ((line = reader.readLine()) != null) {
            String[] strings = TextUtils.split(line, "-");
            if (strings.length < 2)
                continue;
            long id = addWord(strings[0].trim(), strings[1].trim());
            if (id < 0) {
                Log.e(TAG, "unable to add word: " + strings[0].trim());
            }
        }
    } finally {
        reader.close();
    }
    Log.d(TAG, "DONE loading words.");
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X