пожалуйста, отредактируйте свой ответ и отформатируйте код, чтобы сделать его читабельным

аюсь сохранить текстовый файл в своей папке, во внутренней памяти, но каждый раз сталкиваюсь с одной и той же проблемой:

"Источник не найден"

Я пишу свой код по-разному, выражаясь здесь следующим образом, но во всех отношениях у меня одна и та же проблема.

Стоит сказать, что я даже добавлю

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

в Manifest.xml, который не нужен для внутреннего хранения.

Излишне говорить, что у меня нет проблем с сохранением файлов в/ данные / данные / пакет / файлов путь, но когда я добавляю свою папку в корень файлов, например/data/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();                    
    }

Ответы на вопрос(3)

Ваш ответ на вопрос