teléfono samsung nada memoria liberar interno interna espacio cómo como celular borrar basura archivos almacenamiento android internal

samsung - ¿Cómo leo el contenido del archivo desde el almacenamiento interno? Aplicación de Android



liberar espacio almacenamiento interno android (7)

Soy un novato que trabaja con Android. Ya se creó un archivo en la ubicación data/data/myapp/files/hello.txt ; el contenido de este archivo es "hola". ¿Cómo leo el contenido del archivo?


Eche un vistazo a cómo usar los almacenes en Android http://developer.android.com/guide/topics/data/data-storage.html#filesInternal

Para leer los datos del almacenamiento interno, necesita la carpeta de archivos de la aplicación y leer el contenido aquí.

String yourFilePath = context.getFilesDir() + "/" + "hello.txt"; File yourFile = new File( yourFilePath );

También puedes usar este enfoque

FileInputStream fis = context.openFileInput("hello.txt"); InputStreamReader isr = new InputStreamReader(fis); BufferedReader bufferedReader = new BufferedReader(isr); StringBuilder sb = new StringBuilder(); String line; while ((line = bufferedReader.readLine()) != null) { sb.append(line); }


Lea un archivo como una cadena de versión completa (manejo de excepciones, usando UTF-8, manejo de una nueva línea):

// Calling: /* Context context = getApplicationContext(); String filename = "log.txt"; String str = read_file(context, filename); */ public String read_file(Context context, String filename) { try { FileInputStream fis = context.openFileInput(filename); InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); BufferedReader bufferedReader = new BufferedReader(isr); StringBuilder sb = new StringBuilder(); String line; while ((line = bufferedReader.readLine()) != null) { sb.append(line).append("/n"); } return sb.toString(); } catch (FileNotFoundException e) { return ""; } catch (UnsupportedEncodingException e) { return ""; } catch (IOException e) { return ""; } }

Nota: no necesita preocuparse por la ruta del archivo solo con el nombre del archivo.


Llame a la siguiente función con argumento a medida que archiva la ruta:

private String getFileContent(String targetFilePath){ File file = new File(targetFilePath); try { fileInputStream = new FileInputStream(file); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block Log.e("",""+e.printStackTrace()); } StringBuilder sb; while(fileInputStream.available() > 0) { if(null== sb) sb = new StringBuilder(); sb.append((char)fileInputStream.read()); } String fileContent; if(null!=sb){ fileContent= sb.toString(); // This is your fileContent in String. } try { fileInputStream.close(); } catch(Exception e){ // TODO Auto-generated catch block Log.e("",""+e.printStackTrace()); } return fileContent; }


Para leer un archivo del almacenamiento interno:

Llame a openFileInput () y páselo por el nombre del archivo para leer. Esto devuelve un FileInputStream. Leer bytes del archivo con read (). A continuación, cierre la secuencia con close ().

código::

StringBuilder sb = new StringBuilder(); try{ BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8")); String line = null; while ((line = reader.readLine()) != null) { sb.append(line).append("/n"); } is.close(); } catch(OutOfMemoryError om){ om.printStackTrace(); } catch(Exception ex){ ex.printStackTrace(); } String result = sb.toString();


Para otros que buscan una respuesta a por qué un archivo no es legible, especialmente en una tarjeta sd, primero escriba el archivo como este ... Observe el MODE_WORLD_READABLE

try { FileOutputStream fos = Main.this.openFileOutput("exported_data.csv", MODE_WORLD_READABLE); fos.write(csv.getBytes()); fos.close(); File file = Main.this.getFileStreamPath("exported_data.csv"); return file.getAbsolutePath(); } catch (Exception e) { e.printStackTrace(); return null; }


Prefiero usar java.util.Scanner :

try { Scanner scanner = new Scanner(context.openFileInput(filename)).useDelimiter("//Z"); StringBuilder sb = new StringBuilder(); while (scanner.hasNext()) { sb.append(scanner.next()); } scanner.close(); String result = sb.toString(); } catch (IOException e) {}


String path = Environment.getExternalStorageDirectory().toString(); Log.d("Files", "Path: " + path); File f = new File(path); File file[] = f.listFiles(); Log.d("Files", "Size: " + file.length); for (int i = 0; i < file.length; i++) { //here populate your listview Log.d("Files", "FileName:" + file[i].getName()); }