2013-03-15 7 views
0

Je développe une application qui écrit des données JSON dans un fichier texte:Où les fichiers sont-ils enregistrés dans Android?

FileOutputStream fOut; 
fOut = openFileOutput("myfile.txt", MODE_PRIVATE); 
OutputStreamWriter osw = new OutputStreamWriter(fOut); 
osw.write(myJSONData); 

Je teste cette application sur l'appareil et quand je le brancher dans mon ordinateur, je ne suis pas en mesure de voir le fichier. Pouvez-vous s'il vous plaît me dire sous quel répertoire est-il stocké et dois-je définir le mode de fonctionnement du fichier à MODE_WORLD_READABLE afin de le voir s'il vous plaît?

Répondre

1

En le branchant sur votre ordinateur, vous le montez habituellement sur la carte SD. Pour sauvegarder cela, obtenez le répertoire racine de la carte SD Fichier avec Environment.getExternalStorageDirectory() puis construisez un nouveau fichier avec ce fichier et votre nom de fichier de chaîne désiré comme arguments. Cela permettra de l'enregistrer sur votre carte SD, qui devrait être le premier dossier que vous voyez lorsque vous le montez sur votre ordinateur. À propos, pour écrire du texte/JSON directement dans un fichier, utilisez simplement FileWriter.

+1

J'ai téléchargé une application FileManager sur mon téléphone et je peux voir les fichiers, mais quand je le brancher dans mon ordinateur , Je ne suis toujours pas capable de voir les fichiers. Savez-vous pourquoi s'il vous plaît? – user1135357

+0

Avez-vous essayé ce que j'ai dit ou utilisez-vous toujours votre code original? Si vous enregistrez sur la carte SD, vous devrez probablement la démonter sur le téléphone (une notification indiquant "USB connecté-Sélectionnez pour copier des fichiers sur/depuis votre ordinateur", cliquez dessus). Assurez-vous également que vous avez les bons pilotes USB pour votre appareil. Certains ne fonctionneront pas sans eux. –

+0

Mon téléphone n'accepte pas les cartes SD. Lorsque j'ouvre l'explorateur de fichiers sur mon ordinateur, il ne semble pas être là, mais quand j'ouvre l'application gestionnaire de fichiers sur mon téléphone, je peux le voir là-bas, je vérifie le même répertoire, d'abord sur mon ordinateur, puis en utilisant une application sur mon téléphone et dans le dernier cas, je peux voir le fichier. Cela semble étrange. Peu importe, merci pour votre aide – user1135357

1

Vous ne pouvez pas voir les fichiers internes visuellement tant que le mobile n'est pas root. Si vous voulez le voir, enregistrez-le sur la carte SD.

2

Il enregistre le fichier dans le dossier /data/app_package_name/files. Cet emplacement est inaccessible à l'utilisateur via les gestionnaires de fichiers - seule votre application peut y accéder via le code.

En outre, si vous êtes vraiment désireux d'accéder aux fichiers privés, alors vous devez considérer l'option de l'enracinement votre appareil.

0

Pour enregistrer des fichiers sur un stockage interne sous Android (à partir du SDK 23), obtenez l'emplacement de stockage de fichiers de votre application en utilisant getFilesDir() et enregistrez-les. Les fichiers doivent ensuite être enregistrés au /data/user/0/your.app.name/files. Voir: Saving Files.

File filename = new File(getFilesDir(), "filename.txt"); 

Une fois écrit, vous pouvez récupérer ce fichier à partir de votre ordinateur à l'aide adb:

adb pull "/data/user/0/your.app.name/files/filename.txt" 
Questions connexes