IllegalArgumentException: Файл содержит разделитель пути Android

Я пытаюсь написать выходной файл на своем HTC One и получить следующее сообщение в LogCat:

11-21 08: 05: 18.228: W / System.err (6609): java.lang.IllegalArgumentException: Файл /storage/emulated/0/com.example.pattern1/myfile.txt содержит разделитель путей

Исходный код приведен ниже:

protected void writeToFile(String string){ File patternDirectory = new File(Environment.getExternalStorageDirectory().getAbsolutePath().toString()+"/com.example.pattern1/myfile.txt"); patternDirectory.mkdirs(); FileOutputStream outputStream; try { outputStream = openFileOutput(patternDirectory.getAbsolutePath().toString(), Context.MODE_APPEND); outputStream.write(string.getBytes()); TextView t = (TextView)findViewById(R.id.bottomMidText); t.setText(patternDirectory.getAbsolutePath().toString()); outputStream.close(); } catch (Exception e) { e.printStackTrace(); } 

Буду признателен, если кто-то поможет выявить проблему.

    Метод openFileInput не будет принимать разделители путей. ('/')

    Он принимает только имя файла, который вы хотите открыть / получить. Поэтому измените утверждение

     outputStream = openFileOutput(patternDirectory.getAbsolutePath().toString(), Context.MODE_APPEND); 

    в

     outputStream = new FileOutputStream (new File(patternDirectory.getAbsolutePath().toString()), true); // true will be same as Context.MODE_APPEND 

    Одна из проблем может заключаться в том, что вы делаете: Environment.getExternalStorageDirectory().getAbsolutePath().toString()+"/com.example.pattern1/myfile.txt" Вы создаете каталог с именем myfile.txt

    Intereting Posts
    Java.lang.StringIndexOutOfBoundsException при воспроизведении видео в videoView: Android v 4.2.1 Как отобразить изображение из папки с данными в Android? Сделайте строки равными по высоте по высоте экрана в Android-устройстве Android: отключить мягкую клавиатуру на всех EditTexts Android. Как перемещать объект в направлении, к которому он обращен (с использованием Vector3 и Quaternion) Почему он говорит «устарело» для метода, когда его единственный, который я могу использовать для выбранного уровня API? InputMethodManager содержит ссылку на tabhost – Memory Leak – OOM Error Загрузка файла Android WebView Получить статус подключения Wi-Fi (Android) Как переопределить стили библиотеки, которая имеет свою собственную активность Диспетчер тегов: как загрузить двоичный контейнер по умолчанию? Android Layout с ListView между «верхней панелью» и «нижней панелью», Импорт com.google.android.gms.location.LocationClient не может быть разрешен после форматирования компьютера Как использовать ThreeTenABP в Android-проекте Комбинация IdentityHashMap и WeakHashMap