Salvar arquivo interno em minha própria pasta interna no Android
Tento salvar um arquivo txt na minha pasta, no armazenamento interno, mas sempre enfrento o mesmo problema:
"Fonte não encontrada"
Eu escrevo meu código de maneiras diferentes, expressas aqui da seguinte maneira, mas de todas as formas tenho o mesmo problem
Vale a pena dizer que eu até adiciono
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
no Manifest.xml que não é necessário para armazenamento intern
É desnecessário dizer que não tenho nenhum problema para salvar arquivos em / dados / dados / pacote / arquivos path, mas quando adiciono minha pasta na raiz dos arquivos, por exemplo / data / data / pacote / arquivos / myforlder / myfile.txt Eu enfrento o problema "Origem não encontrada"
Pode me apontar na direção certa para resolver isso?
A segunda pergunta é que, para salvar um arquivo em uma pasta externa no armazenamento extern
(por exemplo: armazenamento sdCard ou USB) o cenário é diferente ou é o mesmo?
First Way:
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 maneira:
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();
}
}
Terceiro caminho:
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();
}
Fourth Way:
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();
}
Quinta maneira:
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();
}