[英]Java file encoding in a Maven project by editing pom
我需要指定我的Java應用程序在運行時創建的File
對象以特定的編碼格式(即UTF-8)保存。 我在這里讀到,我應該在啟動JVM時在運行時指定編碼。
由於我正在開發Maven項目,我可以設置pom.xml
文件來指定編碼嗎? 如果有,怎么樣?
如果您正在通過Java代碼創建文件
創建FileOutputStream
。 然后,您可以將它包裝在OutputStreamWriter
,它允許您在構造函數中傳遞編碼。
然后你可以將數據寫入。 嘗試這個:
FileOutputStream fos = new FileOutputStream("test.out");
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
Writer out = new BufferedWriter(osw);
...
out.write(ch);
...
out.close();
由於您要設置運行時編碼:否,因此只能通過maven來執行此操作,因為它只會修改構建時行為。
由於規定了要求並且可能不太可能變化,我可以考慮兩個選項:
在實例化Writer
時指定正確的編碼
使用System.setProperty("file.encoding","UTF-8")
為應用程序指定全局編碼
我建議1.因為它可以為您提供更好的控制,並且不會影響在同一個VM中運行的其他代碼。 您可以將其轉換為配置文件中的某些元素,而不是對編碼進行硬編碼 - 如果您使用maven生成它,則可以通過修改pom輕松切換編碼。
要設置項目編碼,您可以在pom.xml中以這種方式執行此操作
<project>
...
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
...
</project>
如果要根據我的知識設置在運行時創建的文件的編碼,則無法在Maven配置中提供。 您遇到的鏈接有使用UTF-8創建文件的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.