Как заменить строки в текстовом файле, хранящемся во внутреннем хранилище Android studio

#android #android-studio #android-studio-3.0 #writefile #internal-storage

Вопрос:

Эй, Я Использую этот Код, Но Есть Проблема, Мой Файл Находится На моем устройстве Android

Полный путь = «/storage/emulated/0/Android/data/File.txt»;

Проблема в том, что всякий раз, когда я пытался запустить этот код, он выдавал мне ошибку

«E/Посылка: Чтение нулевой строки здесь не поддерживается».

«E/libEGL: Неверный путь к файлу для libcolorx-loader.so»

Что мне делать

Заранее спасибо, ребята

 public static final String PATH ="/storage/emulated/0/Android/File.txt";


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_file);
    File infile = new File(Environment.getExternalStorageDirectory(), PATH);


    replaceSelected("Do the dishes", "1");

}



public static void replaceSelected(String replaceWith, String type) {

    try {

        File infile = new File(Environment.getExternalStorageDirectory(), PATH);

        if (!infile.exists()) return;

        BufferedReader file = new BufferedReader(new FileReader(infile));

        StringBuilder inputBuffer = new StringBuilder();

        String line;


        while ((line = file.readLine()) != null) {

            inputBuffer.append(line);
            inputBuffer.append('n');
        }
        file.close();
        String inputStr = inputBuffer.toString();

        System.out.println(inputStr); // display the original file for debugging

        // logic to replace lines in the string (could use regex here to be generic)
        if (type.equals("0")) {
            inputStr = inputStr.replace(replaceWith   "1", replaceWith   "0");
        } else if (type.equals("1")) {
            inputStr = inputStr.replace(replaceWith   "0", replaceWith   "1");
        }

        // display the new file for debugging
        System.out.println("----------------------------------n"   inputStr);

        // write the new string with the replaced line OVER the same file
        FileOutputStream fileOut = new FileOutputStream(infile);
        fileOut.write(inputStr.getBytes());
        fileOut.close();

    } catch (Exception e) {
        System.out.println("Problem reading file.");
    }
}
 

}

Комментарии:

1. Full Path = "Android/data/File.txt"; Это не полный путь для начала. Это относительный путь. Кроме того, это довольно странное место для файла .txt. Как он там приземлился?

2. Далее вы нигде не используете этот «путь».

3. new FileReader("notes.txt")) Вы должны использовать полный путь туда. Не только имя файла.

4. new FileOutputStream("notes.txt") То же. Используйте только полный путь.

5. пробовал все ту же ошибку