¿Cómo crear un archivo, escribir datos en él y leer datos desde él en Android? Si es posible, proporcione un fragmento de código.¿Cómo crear un archivo en Android?
Respuesta
From here: http://www.anddev.org/working_with_files-t115.html
//Writing a file...
try {
// catches IOException below
final String TESTSTRING = new String("Hello Android");
/* We have to use the openFileOutput()-method
* the ActivityContext provides, to
* protect your file from others and
* This is done for security-reasons.
* We chose MODE_WORLD_READABLE, because
* we have nothing to hide in our file */
FileOutputStream fOut = openFileOutput("samplefile.txt",
MODE_PRIVATE);
OutputStreamWriter osw = new OutputStreamWriter(fOut);
// Write the string to the file
osw.write(TESTSTRING);
/* ensure that everything is
* really written out and close */
osw.flush();
osw.close();
//Reading the file back...
/* We have to use the openFileInput()-method
* the ActivityContext provides.
* Again for security reasons with
* openFileInput(...) */
FileInputStream fIn = openFileInput("samplefile.txt");
InputStreamReader isr = new InputStreamReader(fIn);
/* Prepare a char-Array that will
* hold the chars we read back in. */
char[] inputBuffer = new char[TESTSTRING.length()];
// Fill the Buffer with data from the file
isr.read(inputBuffer);
// Transform the chars to a String
String readString = new String(inputBuffer);
// Check if we read back the same chars that we had written out
boolean isTheSame = TESTSTRING.equals(readString);
Log.i("File Reading stuff", "success = " + isTheSame);
} catch (IOException ioe)
{ioe.printStackTrace();}
¿dónde se escribirá el archivo? –
"/data/data/your_project_package_structure/files/samplefile.txt" – Petar
¿Necesita llamar a 'flush' antes de' cerrar'? –
que utiliza el código siguiente para crear un archivo temporal para la escritura de bytes. Y está funcionando bien.
File file = new File(Environment.getExternalStorageDirectory() + File.separator + "test.txt");
file.createNewFile();
byte[] data1={1,1,0,0};
//write the bytes in file
if(file.exists())
{
OutputStream fo = new FileOutputStream(file);
fo.write(data1);
fo.close();
System.out.println("file created: "+file);
url = upload.upload(file);
}
//deleting the file
file.delete();
System.out.println("file deleted");
Decidí escribir una clase de este hilo que puede ser útil para otros. Tenga en cuenta que esto está pensado actualmente para escribir en el directorio "archivos" solamente (por ejemplo, no escribe en las rutas de "tarjeta SD").
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import android.content.Context;
public class AndroidFileFunctions {
public static String getFileValue(String fileName, Context context) {
try {
StringBuffer outStringBuf = new StringBuffer();
String inputLine = "";
/*
* We have to use the openFileInput()-method the ActivityContext
* provides. Again for security reasons with openFileInput(...)
*/
FileInputStream fIn = context.openFileInput(fileName);
InputStreamReader isr = new InputStreamReader(fIn);
BufferedReader inBuff = new BufferedReader(isr);
while ((inputLine = inBuff.readLine()) != null) {
outStringBuf.append(inputLine);
outStringBuf.append("\n");
}
inBuff.close();
return outStringBuf.toString();
} catch (IOException e) {
return null;
}
}
public static boolean appendFileValue(String fileName, String value,
Context context) {
return writeToFile(fileName, value, context, Context.MODE_APPEND);
}
public static boolean setFileValue(String fileName, String value,
Context context) {
return writeToFile(fileName, value, context,
Context.MODE_WORLD_READABLE);
}
public static boolean writeToFile(String fileName, String value,
Context context, int writeOrAppendMode) {
// just make sure it's one of the modes we support
if (writeOrAppendMode != Context.MODE_WORLD_READABLE
&& writeOrAppendMode != Context.MODE_WORLD_WRITEABLE
&& writeOrAppendMode != Context.MODE_APPEND) {
return false;
}
try {
/*
* We have to use the openFileOutput()-method the ActivityContext
* provides, to protect your file from others and This is done for
* security-reasons. We chose MODE_WORLD_READABLE, because we have
* nothing to hide in our file
*/
FileOutputStream fOut = context.openFileOutput(fileName,
writeOrAppendMode);
OutputStreamWriter osw = new OutputStreamWriter(fOut);
// Write the string to the file
osw.write(value);
// save and close
osw.flush();
osw.close();
} catch (IOException e) {
return false;
}
return true;
}
public static void deleteFile(String fileName, Context context) {
context.deleteFile(fileName);
}
}
Compruebo su código pero hay algunos comandos que están en desuso para la nueva API (17): Context.MODE_WORLD_READABLE y Context.MODE_WORLD_WRITEABLE deben cambiarse. –
Además de los bits en desuso: debe cerrar finalmente y no es necesario enjuagar antes de cerrar. Por favor no publiques código descuidado –
escribir en un archivo test.txt:
String filepath ="/mnt/sdcard/test.txt";
FileOutputStream fos = null;
try {
fos = new FileOutputStream(filepath);
byte[] buffer = "This will be writtent in test.txt".getBytes();
fos.write(buffer, 0, buffer.length);
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(fos != null)
fos.close();
}
Leer del archivo test.txt:
String filepath ="/mnt/sdcard/test.txt";
FileInputStream fis = null;
try {
fis = new FileInputStream(filepath);
int length = (int) new File(filepath).length();
byte[] buffer = new byte[length];
fis.read(buffer, 0, length);
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(fis != null)
fis.close();
}
Nota: no se olvide de añadir estos dos permisos en AndroidManifest. xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
- 1. cómo crear un archivo xml en android
- 2. Crear un archivo jar en Android
- 3. ¿Cómo crear un menú programáticamente en Android?
- 4. cómo crear un archivo sin formato de gestos de Android
- 5. crear archivo PDF desde android
- 6. Cómo crear un archivo de texto e insertar datos en ese archivo en Android
- 7. Crear archivo en el emulador de Android
- 8. ¿Cómo crear un archivo jar ofuscado?
- 9. Cómo crear un calendario simple en android
- 10. ¿Cómo crear un servidor HTTP en Android?
- 11. Cómo crear un archivo "corrupto"
- 12. ¿Cómo crear un archivo chm?
- 13. Cómo crear un nuevo archivo en Qt
- 14. Cómo crear un archivo Jar en Netbeans
- 15. ¿Cómo crear un archivo disperso en NTFS?
- 16. cómo crear un archivo xml en delphi
- 17. Cómo crear un archivo exe en java
- 18. ¿Cómo crear un archivo .exe en netbeans?
- 19. Cómo abrir un archivo csv en Android
- 20. ¿Cómo descomprimir un archivo 7zip en Android?
- 21. Android: Crear archivo usando el método createNewFile()
- 22. Exportación de Android: cómo crear el archivo .keystore?
- 23. Cómo crear un Drawable de byte []? (Android)
- 24. Cómo crear un anuncio intersticial para Android?
- 25. Cómo crear un ecualizador para Android
- 26. cómo crear un archivo de cabecera y un archivo fuente de un archivo .ui en Qtdesigner?
- 27. Android: cómo crear un fondo del patrón?
- 28. Android: ¿Cómo crear un reproductor de video?
- 29. cómo crear un contestador automático para android
- 30. ¿Cómo crear un menú contextual usando un archivo XML?
Mire este [enlace] (http://www.anddev.org/worki ng_with_files-t115.html) Contiene un tutorial fácil de seguir sobre cómo escribir y leer desde archivos. – Prashast
http://developer.android.com/training/basics/data-storage/files.html –