File outputFile = new File(path, clickedKey+".txt");
OutputStream fos = new FileOutputStream(outputFile);
fos.write(data.getBytes());
fos.close();

Этот фрагмент кода работает, когда путь не содержит символов типа: «óźżę» (специальные символы с польского языка). Если путь содержит какой-либо из них, fos.write работает, но без эффекта (новый файл не создается с "чужим" именем пути, но путь существует). У меня вопрос: что я могу сделать, чтобы это исправить?

Приложения файловых менеджеров, такие как «Astro», «Файловый менеджер» и т. Д., Без проблем работают с такими символами.

Я пробую также это:

Charset charset = Charset.forName("UTF-8");
CharsetEncoder encoder = charset.newEncoder();
CharsetDecoder decoder = charset.newDecoder();

ByteBuffer bbuf = encoder.encode(CharBuffer.wrap(clickedKey+".txt"));
CharBuffer cbuf = decoder.decode(bbuf);
String s = cbuf.toString();

bbuf = encoder.encode(CharBuffer.wrap(path));
cbuf = decoder.decode(bbuf);
String path_s = cbuf.toString();

File outputFile = new File(path_s, s);
OutputStream fos = new FileOutputStream(outputFile);
fos.write(tab.getBytes());
fos.close();

Но это не работает так же хорошо.

2
klimat 26 Авг 2011 в 15:44

2 ответа

Лучший ответ

Когда мой телефон был подключен через ADB, и я проверял новые файлы с помощью DDMS, на «чужом» пути не было ни одного файла. Но на самом деле файлы были в телефоне!

Проверял, с файловым менеджером прямо в телефоне :) Странно. Но я решил проблему.

2
klimat 27 Авг 2011 в 16:07

Вы проверяли кодировку? в eclipse: Edit> set Encoding> utf-8 или 16

0
Imotep 26 Авг 2011 в 13:02