Я пытаюсь сохранить текстовый файл в моей папке, во внутренней памяти, но я сталкиваюсь с той же проблемой каждый раз, когда:Сохранить внутренний файл в моей собственной внутренней папке в Android
«Источник не найден»
Я пишу свой код по-разному, выраженный здесь следующим образом, но во всех отношениях у меня такая же проблема.
Стоит сказать, что я даже добавить
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
в Manifest.xml, что не является необходимым для внутреннего хранения.
Излишне говорить, что у меня нет никаких проблем, чтобы сохранить файлы в /данные/данные/пакет/файлах пути, но когда я добавить свою папку в корневом каталоге файлов, например /данные/data/package/files/myforlder/myfile.txt Я столкнулся с проблемой «Источник не найден».
Не могли бы вы указать мне в правильном направлении, чтобы решить эту проблему?
Второй вопрос заключается в том, что для сохранения файла во внешней папке во внешнем хранилище.
(например: sdCard или USB-накопитель) - это сценарий по-другому или он такой же?
Первый способ:
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();
}
}
Второй способ:
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();
}
}
Третий путь:
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();
}
Четвертый путь:
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();
}
Пятый путь:
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();
}
При написании вашего вопроса выберите код и нажмите ctrl + k, это будет автоиндентировать и раскрасить ваш код. , так что это более читаемо. Никто не захочет читать этот код незапятнанным и неокрашенным. –