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 ответа
Когда мой телефон был подключен через ADB, и я проверял новые файлы с помощью DDMS, на «чужом» пути не было ни одного файла. Но на самом деле файлы были в телефоне!
Проверял, с файловым менеджером прямо в телефоне :) Странно. Но я решил проблему.
Вы проверяли кодировку? в eclipse: Edit> set Encoding> utf-8 или 16
Похожие вопросы
Новые вопросы
android
Android - это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфоны, планшеты, автомобили, телевизоры, одежда, стекло, IoT). Для тем, связанных с Android, используйте специальные теги Android, такие как android-intent, android-activity, android-адаптер и т. Д. Для вопросов, не связанных с разработкой или программированием, но связанных с платформой Android, используйте эту ссылку: https: // android.stackexchange.com .