我想保存在test.properties文件Latin1的字符「ASSO」。 但它存儲像「\ u00C0 \ u00DF \ u00D6」。但我期待商店的確切價值。 儘可能的幫助。如何保存和Java屬性讀取Latin1的charecters文件
回答
您可以使用作家使用超載store(Writer,String)方法存儲,但不應該。
的標準方法以保存/加載是通過一個OutputStream/InputStream的。文檔store(OutputStream,String):
這種方法輸出在 同一格式的註釋屬性的鍵和值作爲
store(Writer)
指定,具有以下 差異:
- 流是使用ISO 8859寫入-1字符編碼。
- 字符無法在拉美-1中的註釋寫成爲\ uXXXX爲他們適當的Unicode十六進制值XXXX。
- 性狀小於\ u0020和比\在屬性鍵或值u007E更大字符寫成爲\ uXXXX爲適當 十六進制值XXXX。
如果你寫使用其他機構的數據則任何應用程序期望標準的形式將失敗,因爲這代碼演示:
Path file = Paths.get("tmp.properties");
Properties write = new Properties();
write.put("key", "\u00C0\u00DF\u00D6");
try (Writer writer = Files.newBufferedWriter(file, StandardCharsets.UTF_8)) {
write.store(writer, "demo");
}
Properties read = new Properties();
try (InputStream in = Files.newInputStream(file)) {
read.load(in);
}
if (!write.get("key").equals(read.get("key"))) {
throw new IOException("expected: " + write.get("key") + "; got: "
+ read.get("key"));
}
如果逃逸是有問題的,比如JSON考慮使用其他格式 - JSON mandates Unicode。
您好我使用jdk1.5您的代碼將爲jdk1.7工作任何解決方案使用jdk1.5 plz 嘗試(作家作家= Files.newBufferedWriter(文件,StandardCharsets.UTF_8)){ write.store(作家,「演示「); } 未在JDK 1.5支承。 –
隨着JDK 1.6可以解決使用下面的代碼:
Writer writer = null;
try
{
Properties prop = new Properties();
OutputStream output = null;
output = new FileOutputStream("D:\\test1.properties");
// set the properties value
prop.setProperty("database", "ÀßÖ");
prop.setProperty("dbuser", "ÀßÖ");
prop.setProperty("dbpassword", "ÀßÖ");
// writer = new OutputStreamWriter(output, "windows-1252");
writer = new OutputStreamWriter(output, "UTF-8");
// writer.append("Text");
prop.store(writer, null);
}
catch (Exception e)
{
// errorMessage = e.getMessage();
}
finally
{
try
{
if (writer != null)
{
writer.flush();
writer.close();
}
}
catch (Exception e)
{
}
}
嘗試讓我知道。
我需要jdk1.5的解決方案 –
- 1. 如何保持Java屬性文件的可讀性
- 2. 如何使用java加載和讀取多個屬性文件
- 3. 用java讀取文件屬性
- 4. 在java中讀取屬性文件
- 5. 從文件讀取Java屬性組
- 6. 如何讀取java中的屬性的XML文件?
- 7. 如何讀取屬性文件?
- 8. 如何從HDF5文件讀取屬性?
- 9. 如何從屬性文件讀取值?
- 10. 如何讀取不同Java項目中的屬性文件?
- 11. 如何讀取屬性從不同的位置,文件中JAVA
- 12. 如何安全地讀取Java中的屬性文件?
- 13. 如何讀取屬性文件並獲取wsdl文件中的值java
- 14. 如何在java代碼中讀取spark保存的文件
- 15. 如何讀取的Java文件並保存每一項
- 16. 如何在j2me中讀取文件的屬性/屬性
- 17. java讀取屬性和使用stringbuilder的xml文件
- 18. UNIX讀取特殊charecters
- 19. 讀取xml文件,修改值/添加元素/屬性並保存xml如何?
- 20. 如何使用Java Script從屬性文件讀取值?
- 21. AWS Lambda Java如何讀取屬性文件
- 22. 我如何從一個網站用java讀取屬性文件?
- 23. 如何在Java中讀取擴展文件屬性?
- 24. 如何從JAAS LoginModule中讀取Java屬性文件
- 25. 從屬性文件讀取
- 26. JSP屬性文件讀取
- 27. 讀取屬性文件
- 28. 在讀取屬性文件
- 29. 如何讀取和寫入我的Java Resources/src/configuration.properties中的屬性文件
- 30. iOS - 如何使用存檔保存和讀取文件?
這些是確切的Unicode值,如屬性文件標準所要求的。 – bmargulies
是否可以將「ÀßÖ」保存在屬性文件中而不是「\ u00C0 \ u00DF \ u00D6」中? –