Cómo guardar el archivo de texto analizado en almacenamiento interno / externo en android

Actualmente estoy trabajando en el proyecto donde necesito analizar un archivo de texto remoto y almacenarlo en el almacenamiento local (interno / externo). Puedo analizar el archivo de texto pero no poder almacenarlo en SDCARD. Aquí está mi código:

package com.exercise.AndroidInternetTxt; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.MalformedURLException; import java.net.URL; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; import android.widget.Toast; public class AndroidInternetTxt extends Activity { TextView textMsg, textPrompt; final String textSource = "http://sites.google.com/site/androidersite" + "/text.txt"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); textPrompt = (TextView) findViewById(R.id.textprompt); textMsg = (TextView) findViewById(R.id.textmsg); textPrompt.setText("Wait..."); URL textUrl; try { textUrl = new URL(textSource); BufferedReader bufferReader = new BufferedReader( new InputStreamReader(textUrl.openStream())); String StringBuffer; String stringText = ""; while ((StringBuffer = bufferReader.readLine()) != null) { stringText += StringBuffer; } bufferReader.close(); textMsg.setText(stringText); // Saving the parsed data......... File myFile = new File("sdcard/mysdfile.txt"); if (!myFile.exists()) { myFile.mkdirs(); } myFile = new File("sdcard/mysdfile.txt"); myFile.createNewFile(); FileOutputStream fOut = new FileOutputStream(myFile); OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut); myOutWriter.append(textMsg.getText()); myOutWriter.close(); fOut.close(); Toast.makeText(getBaseContext(), "Done writing SD 'mysdfile.txt'", Toast.LENGTH_SHORT).show(); } catch (MalformedURLException e) { e.printStackTrace(); textMsg.setText(e.toString()); } catch (IOException e) { e.printStackTrace(); textMsg.setText(e.toString()); } textPrompt.setText("Finished!"); } } 

Y aquí está mi archivo de manifiesto –

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.exercise.AndroidInternetTxt" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="4" /> <uses-permission android:name="android.permission.INTERNET"/> <application android:label="@string/app_name"> <activity android:name=".AndroidInternetTxt" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE"/> </manifest> 

Sin embargo, mi pregunta es –

  • ¿Cómo almacenar los datos de texto analizados en un archivo dentro de la memoria SDCARD o del teléfono?
  • ¿Hay alguna forma de comprobar la URL con un intervalo predefinido usando el temporizador?

Cualquier ejemplo de código es excelente para mí.

En primer lugar, su archivo AndroidManifest.xml es correcto. Así que no hay necesidad de corregir eso. Aunque yo recomendaría organizar sus permisos en un solo lugar.

Escribir archivo en el almacenamiento interno

 FileOutputStream fOut = openFileOutput("myinternalfile.txt",MODE_WORLD_READABLE); OutputStreamWriter osw = new OutputStreamWriter(fOut); //---write the contents to the file--- osw.write(strFileData); osw.flush(); osw.close(); 

Escribir archivo en la tarjeta SD externa

 //This will get the SD Card directory and create a folder named MyFiles in it. File sdCard = Environment.getExternalStorageDirectory(); File directory = new File (sdCard.getAbsolutePath() + "/MyFiles"); directory.mkdirs(); //Now create the file in the above directory and write the contents into it File file = new File(directory, "mysdfile.txt"); FileOutputStream fOut = new FileOutputStream(file); OutputStreamWriter osw = new OutputStreamWriter(fOut); osw.write(strFileData); osw.flush(); osw.close(); 

Nota: Si se ejecuta en un emulador, asegúrese de que ha habilitado la compatibilidad con la tarjeta SD en las propiedades de AVD y le ha asignado el espacio adecuado.

Reemplazar estas líneas

 File myFile = new File("sdcard/mysdfile.txt"); if(!myFile.exists()){ myFile.mkdirs(); } myFile = new File("sdcard/mysdfile.txt"); 

con

// Guardando los datos analizados ………

 File myFile = new File(Environment.getExternalStorageDirectory()+"/mysdfile.txt"); myFile.createNewFile(); 
 File myFile = new File("sdcard/mysdfile.txt"); 

Debe cambiarse a

 File myFile = new File("/mnt/sdcard/mysdfile.txt"); 
  • Android: cambia el color de la fuente al hacer clic
  • Abrir o iniciar el teclado del software en modo de número o símbolo
  • Mostrar texto en el polígono android Google map v2
  • ¿Cómo subraya un texto en android xml?
  • Paginación de texto en Android
  • Posible cambiar el tamaño de texto / color para ActionBar?
  • Retire espacio adicional antes de la primera letra del texto para que pueda alinearse correctamente a la izquierda
  • Envuelva texto fuera de la curva de bezier en android
  • ¿Cómo encontrar el número de caracteres de TextView de Android por línea?
  • Android Dibujo de texto con opengl es se bloquea después de unos minutos
  • Tamaño físico de la fuente en puntos en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.