Создание файла с неанглийскими символами в имени файла
Как создать файл с китайским символом в имени файла в Java? Я прочитал много ответов о переполнении стека, но не смог найти правильного решения. Код, который я написал до сих пор, выглядит следующим образом:
private void writeFile(String fileContent) {
try{
File file=new File("C:/temp/你好.docx");
if(file.exists()){
file.delete();
}
file.createNewFile();
FileOutputStream fos = new FileOutputStream(file);
fos.write(fileContent);
fos.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
Файл записывается в выходной каталог, но имя файла содержит некоторое значение мусора. Заранее спасибо.
1 ответ
Я считаю, что ключ к тому, что я упомянул в комментарии.
Вы можете использовать китайские символы (или другие символы, не являющиеся символами ascii) в качестве литералов в исходном коде. Однако вы должны убедиться в двух вещах:
- Кодировка, которую вы используете для сохранения исходного файла, способна представлять этот символ (я предлагаю просто придерживаться UTF-8)
-encoding
параметр, который вы передалиjavac
должно соответствовать кодировке файла. Например, если вы используете UTF-8, ваша команда javac должна выглядеть следующим образомjavac -encoding utf-8 Foo.java
Я только что попробовал подобный кусок кода, который у вас есть, и он хорошо работает на моей машине.