![]() |
|
| Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
«
Tema Anterior
|
Siguiente tema
»
|
|
Herramientas |
|
#1
|
|
Problema con edición de archivo de texto.
Quiero editar un archivo de texto cada vez que se ejecute una activity, para ello utilizo este código:
Código:
try
{
OutputStreamWriter file = new OutputStreamWriter(openFileOutput("archivo.txt", Context.MODE_PRIVATE));
file.write(index + "\n");
file.close();
}
catch (Exception ex)
{
}
Cómo soluciono ésto? Un saludo. Última edición por Bongiovi Día 16/07/13 a las 22:39:10 |
|
|
|
#2
|
||||
|
||||
|
Context.MODE_PRIVATE sobreescribe, Context.MODE_APPEND escribe a partir del final
|
|
#3
|
|
Vale, ya consigo crear el archivo o editarlo cuando corresponde. Ahora el problema viene con los caracteres, que salen en chino tanto al mostrarlo en una Activity como al abrirlo con cualquier Editor de Texto.
Ahí va el código: - Creación/Edición del archivo. Código:
File fichero = new File("/data/data/com.loquesea.loquesea/files/archivo.txt");
if(fichero.exists())
{
try
{
OutputStreamWriter file = new OutputStreamWriter(openFileOutput("archivo.txt", Context.MODE_APPEND));
file.write(index);
file.close();
Toast.makeText(getApplicationContext(), "archivo.txt EXISTE : " + index, Toast.LENGTH_SHORT).show();
}
catch (Exception ex)
{
Toast.makeText(getApplicationContext(), "EXISTE Y ERROR", Toast.LENGTH_SHORT).show();
}
}
else
{
try
{
OutputStreamWriter file = new OutputStreamWriter(openFileOutput("archivo.txt", Context.MODE_PRIVATE));
file.write(index + " iteraciones");
file.close();
Toast.makeText(getApplicationContext(), "archivo.txt NO EXISTE : " + index, Toast.LENGTH_SHORT).show();
}
catch (Exception ex)
{
Toast.makeText(getApplicationContext(), "NO EXISTE Y ERROR", Toast.LENGTH_SHORT).show();
}
}
Utilizo los Toast para "depurar" y parece que crea/edita cuando corresponde. - Lectura del archivo (en otra Activity). Código:
TextView view;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.scores_activity);
String texto;
String contenido = null;
view = (TextView) findViewById(R.id.Scores);
try
{
BufferedReader leer = new BufferedReader(new InputStreamReader(openFileInput("archivo.txt")));
while((texto = leer.readLine()) != null)
{
contenido += texto + "\n";
Toast.makeText(getApplicationContext(), "Se ha leído : " + texto, Toast.LENGTH_SHORT).show();
}
view.setText(contenido);
view.setVisibility(TextView.VISIBLE);
leer.close();
}
catch (Exception ex)
{
Toast.makeText(getApplicationContext(), "No lo lee", Toast.LENGTH_SHORT).show();
}
}
Ya digo que los caracteres aparecen en chino
|
|
#4
|
||||
|
||||
|
Eso es por escribir un int a secas con el write, que lo interpreta como un codigo del caracter no como el número.
Haz un write("" + index) o simplemente usa una variable de tipo String |
|
#5
|
|
|
Cita:
Además he sustituido el String "contenido" por un StringBuilder, que da mejor resultado. |
| Respuesta |
Estás aquí
|
||||||
|
||||||
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 13:48:37 (GMT +1)
HTCMania: líderes desde el 2007






