Создание файла с названием на кириллице

294
26 июня 2018, 06:10

Нужна программа на java. Как исправить кодировку сохраняемого на телефон файла?

Имя файла должно быть строго русскими буквами, но сохраняется 2 файла: один - с правильным названием на кириллице, но без данных (вес файла - 0 байт), второй - с данными, но имя файла состоит из знаков %D0%A1 и так далее.

В сети полно материалов на тему кодировок, но все они касаются содержания фала, либо загрузки внешнего файла. А мне нужно создать файл с данными и именем файла русскими буквами. Я пробовала менять кодировку имени файла, но безрезультатно

Как создать файл?

Я делала так:

File docCase = new File(Environment.getExternalStorageDirectory() + "/Files");
        docCase.mkdirs();
String fileName1 = "Файл"; 
String fileName2 = new String(fileName1.getBytes("utf-8"),"cp1251");
String fileName3 = fileName2 + ".xml";
myFile = new File(docCase.getAbsolutePath(), fileName3);
Answer 1
try (final Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(System.getProperty("user.dir") + "/Хелло.txt"), "utf-8"))) {
    writer.write("текст");
}

Без проблем создает файл с русским именем и русским содержанием.
А вообще, все зависит от кодировки OS, в какой OS в такой и сохраняйте, вот например у меня System.getProperty("file.encoding") - выводит UTF-8, в ней и нужно сохранять.

READ ALSO
Как совместить написаное для Android приложение со всеми резолюциями экрана

Как совместить написаное для Android приложение со всеми резолюциями экрана

Подскажите как можно совместить UI приложения со всеми устройствами?

328
Удаления элемента JSONArray

Удаления элемента JSONArray

В моем Android приложение приходит JSONArrayПримерно выглядит вот так:

270
Проблема с потоками ввода вывода в Socket

Проблема с потоками ввода вывода в Socket

Тренируюсь работать с потоками ввода и вывода в Socket'ахТо есть со стороны клиента по нажатию кнопки у меня создаётся поток, который создаёт...

285
Java СlassNotFoundException oracle.jdbc.OracleDriver

Java СlassNotFoundException oracle.jdbc.OracleDriver

После создания артефакта (jar файл) в IntellIJ, при подключении к DB Oracle на RDS Amazon, выдает ошибку: СlassNotFoundException oracle

284