2016-10-27 9 views
0

Сегодня я тестировал «файлы» вместо обычного пути.
Вот мой код:OutputStreamWriter содержит разделитель путей

File path=new File(getFilesDir(),"uf"); 
File test = new File(path.getAbsolutePath(),"test.txt"); 


if(!path.exists()){ 
    path.mkdir(); 
} 

if(!test.isFile()){ 
    try { 
     test.createNewFile(); 
    } catch (IOException e) { 
     //TODO in errorlog -> filecreation 
     e.printStackTrace(); 
    } 
}else{ 
    try { 
     OutputStreamWriter mywriter = new OutputStreamWriter(openFileOutput(test.getAbsolutePath().toString(),Context.M                ODE_PRIVATE)); 
     mywriter.close(); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

} 

В коде ошибки приходит каждый раз: illegal Arguments: contains a path seperator!

Спасибо за вашу помощь, заранее

+0

Всегда предоставляйте полное исключение. – Hrabosch

ответ

0

Может быть, добавить больше информации о вашей ошибке. Но ...

Эта ошибка заключается в том, что вы пытаетесь использовать полный путь (включая подкаталоги) для доступа к частной области данных. Решение используется FileOutputStream, больше here. И используйте

new File(YOUR_FILE) 

для создания вашего файла.

Имейте в виду, что вы должны вызвать метод mkDirs(), чтобы создать все необходимые каталоги и подкаталоги. Подробнее о mkDirs() here

Примечание: Существует также метод mkDir(), here is doc. Это создаст единый каталог.