trato de guardar un archivo txt en mi carpeta, en el almacenamiento interno, pero se enfrentan al mismo problema cada vez:Guardar archivo interno en mi propia carpeta interna en Android
"Fuente no encontrada"
Escribo mi código de diferentes maneras expresadas aquí de la siguiente manera, pero en todos los sentidos tengo el mismo problema.
Vale la pena decir que incluso agrego
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
en Manifest.xml que no es necesario para el almacenamiento interno.
Es innecesario decir que no tengo ningún problema para guardar archivos en /datos/datos/paquetes/archivos camino, pero cuando agrego mi carpeta en la raíz de los archivos, por ejemplo, /datos/data/package/files/myforlder/myfile.txt Me enfrento al problema de "Fuente no encontrada".
¿Podría indicarme la dirección correcta para solucionar esto?
La segunda pregunta es que, para guardar un archivo en una carpeta externa en el almacenamiento externo.
(por ejemplo: tarjeta SD o almacenamiento USB) ¿Es el escenario diferente o es el mismo?
primera manera:
OutputStreamWriter out;
try {
File path=new File(getFilesDir(),"myfolder");
File mypath=new File(path,"myfile.txt");
if (!mypath.exists()) {
out = new OutputStreamWriter(openFileOutput(mypath.getAbsolutePath() , MODE_PRIVATE));
out.write("test");
out.close();
}
}
Segunda forma:
OutputStreamWriter out;
try {
ContextWrapper cw = new ContextWrapper(this);
File path = cw.getDir("myfolder", Context.MODE_PRIVATE);
if (!path.exists()) {
path.createNewFile();
path.mkdir();
}
File mypath=new File(path,"myfile.txt");
if (!mypath.exists()) {
out = new OutputStreamWriter(openFileOutput(mypath.getAbsolutePath() , MODE_PRIVATE));
out.write("test");
out.close();
}
}
Tercera forma:
File path=getFilesDir();
String mypath=path.toString() + "/myfolder";
OutputStreamWriter out;
try {
File f = new File(mypath , "/myfile.txt" );
out = new OutputStreamWriter(openFileOutput(f.getPath(), MODE_PRIVATE));
out.write("test");
out.close();
}
Cuarta Vía:
File path=getFilesDir();
OutputStreamWriter out;
try {
File f = new File(path.getPath() + "/myfolder/myfile.txt" );
out = new OutputStreamWriter(openFileOutput(f.getPath(), MODE_PRIVATE));
out.write("test");
out.close();
}
Quinto manera:
File path=getFilesDir();
OutputStreamWriter out;
try {
File f = new File(path.getCanonicalPath() + "/myfile.txt");
out = new OutputStreamWriter(openFileOutput(f.getPath(), MODE_PRIVATE));
out.write("test");
out.close();
}
Mientras escribe su pregunta, seleccione el código y presione ctrl + k, esto autoinderte y coloreará su código , entonces eso es mucho más legible Nadie querrá leer ese código sin haber sido descolocado ni incoloro. –