Enregistrement sur une carte SD en tant que fichier texte

stopWriting = (Button) findViewById(R.id.save); stopWriting.setOnClickListener(new OnClickListener() { @SuppressLint("SdCardPath") public void onClick(View v) { // stop recording the sensor data try { myFile = new File("/sdcard/SensorData/" + txtData.getText() + ".txt"); myFile.createNewFile(); sData = new FileOutputStream(myFile); myOutWriter = new OutputStreamWriter(sData); myBufferedWriter = new BufferedWriter(myOutWriter); myPrintWriter = new PrintWriter(myBufferedWriter); //if(myFile != null )//stopFlag = mSensorManager.cancelTriggerSensor(null, null); Toast.makeText(getBaseContext(), "Done", Toast.LENGTH_SHORT).show(); } catch (Exception e) { Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_SHORT).show(); } } }); 

J'essaie de sauvegarder les données du gyroscope dans le fichier txt mais il ne l'enregistre pas. Si quelqu'un trouve le problème, aidez-moi à le corriger.

  • Pourquoi PhoneGap est plus lent que le navigateur?
  • L'obfuscation de Proguard cesse simplexml
  • Comment enregistrer l'écran Android avec Android Studio?
  • Obtenir des données à partir d'un dialogue de fragments - les meilleures pratiques?
  • Afficher l'aperçu modifié de la caméra en direct
  • Reliure de données Android: Liste observable de l'adaptateur RecyclerView
  • Veuillez expliquer les adaptateurs de tableau et leur but. Encore mieux
  • Android - bouton personnalisé avec des dessins déformables et un dégradé par programme
  • Java pour démarrer un AsyncTask après 3 secondes de retard?
  • Renommage le nom de l'APP seul dans Android Eclipse IDE
  • Android Phonegap - Comment ouvrir une application Google Maps native
  • Essayer de terminer un événement d'entrée mais le récepteur d'événement d'entrée a déjà été éliminé
  • 6 Solutions collect form web for “Enregistrement sur une carte SD en tant que fichier texte”

    Essayez ce code qui fonctionne pour moi.

     try { File myFile = new File("/sdcard/mysdfile.txt"); myFile.createNewFile(); FileOutputStream fOut = new FileOutputStream(myFile); OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut); myOutWriter.append(txtData.getText()); myOutWriter.close(); fOut.close(); Toast.makeText(getBaseContext(), "Done writing SD 'mysdfile.txt'", Toast.LENGTH_SHORT).show(); } catch (Exception e) { Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_SHORT).show(); } 

    N'oubliez pas de prendre la permission

     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

    Essayez ce code:

     public void writeToFile(String fileName, String body) { FileOutputStream fos = null; try { final File dir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/folderName/" ); if (!dir.exists()) { if(!dir.mkdirs()){ Log.e("ALERT","could not create the directories"); } } final File myFile = new File(dir, fileName + ".txt"); if (!myFile.exists()) { myFile.createNewFile(); } fos = new FileOutputStream(myFile); fos.write(body.getBytes()); fos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } 

    Aussi, n'oubliez pas d'inclure l'autorisation de stockage externe dans votre fichier manifeste:

     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

    Et sur Android 6.0 pour demander l'autorisation pour WRITE_EXTERNAL_STORAGE

    Avez-vous utilisé la permission d'écrire dans sd?

     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

    Je le fais comme ça

     public void write() { FileOutputStream output = null; try { String mediaState = Environment.getExternalStorageState(); if(mediaState.equalsIgnoreCase(Environment.MEDIA_MOUNTED)) { output = new FileOutputStream(new File(Environment.getExternalStorageDirectory() + "/download/shared.txt")); String str = "Hello, writing to a text file"; byte[] b = encrypt2(str); output.write(b); } else { // error } } catch (IOException e) { e.printStackTrace(); } finally { try { if (output != null) output.close(); } catch (IOException e) { e.printStackTrace(); } } } public static byte[] encrypt2(String value) { byte[] input = value.getBytes(); int nLen = input.length; if(nLen % 2 != 0) { nLen--; } byte temp; for (int i = 0; i < nLen; i += 2) { temp = input[i+1]; input[i+1] = input[i]; input[i] = temp; } // do encryption return Base64.encode(input, Base64.NO_WRAP); } 

    De plus, cette autorisation est requise

     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

    Essaye ça..

     stopWriting.setOnClickListener(new OnClickListener() { @SuppressLint("SdCardPath") public void onClick(View v) { // stop recording the sensor data try { myFile = new File("/sdcard/SensorData/" + txtData.getText() + ".txt"); myFile.createNewFile(); FileOutputStream fOut = new FileOutputStream(myFile); OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut); myOutWriter.append(txtData.getText()); myOutWriter.close(); fOut.close(); Toast.makeText(getBaseContext(), "Done writing SD " + txtData.getText() + ".txt", Toast.LENGTH_SHORT).show(); } catch (Exception e) { Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_SHORT).show(); } } }); 

    Et une autorisation de stockage externe dans votre fichier manifeste:

     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

    D'abord déclarez cette autorisation à votre androidManifest.xml:

     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

    Ensuite, écrivez ce code sur vos événements de clic de bouton

      try { putStream fOut = new FileOutputStream(myFile); OutputStreamWriter myOutWriter =new OutputStreamWriter(fOut); myOutWrite File myFile = new File("/sdcard/SensorData.txt"); myFile.createNewFile(); FileOutr.append(txtData.getText()); myOutWriter.close(); fOut.close(); Toast.makeText(v.getContext(),"Done writing SD 'SensorData.txt'", Toast.LENGTH_SHORT).show(); txtData.setText(""); } catch (Exception e) { Toast.makeText(v.getContext(), e.getMessage(),Toast.LENGTH_SHORT).show(); } } 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.