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 –
- Bloquear textos entrantes (Android)
- Android Cambiar elementos de menú del cajón de navegación Texto por programación
- Android: Copia de un texto en el portapapeles para API <11
- ¿Cómo mostrar un cuadro de edición de texto "sobre" la pantalla?
- Necesidad de formatear moneda para TextView
<?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í.
- Crea una búsqueda instantánea de Google en una aplicación para Android
- ¿Cómo agregar TextView en medio de pulgar SeekBar?
- Android - cómo configurar el texto para el botón de inicio de sesión de google + después de autenticado
- Cómo escribir una matriz en un archivo de texto en el almacenamiento interno?
- Selecciona el texto de la vista de texto con un solo clic en android
- ¿Es posible para TextView Marquee en un Widget que extiende AppWidgetProvider?
- Mostrar <ul> <li> en la vista de texto de android
- Cómo agregar el botón de texto a la barra de acción
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");
- Estilizar un texto de edición de Android para que parezca un selector de lista desplegable / spinner
- Eclipse da "Conversión al formato de Dalvik fallado" mientras que la hormiga trabaja