2014-08-30 90 views
0

我正在創建一個Bukkit插件,但我在加載.properties文件時遇到問題。 我得到「sun.util.ResourceBundleEnumeration不能轉換爲java.lang.String」Java sun.uil.ResourceBundleEnumeration不能轉換爲java.lang.String

我想從另一個屬性文件中添加所有不在2 .properties文件(ENf和LANGf)中的鍵。

File tempFile = null; 
    try { 
     tempFile = File.createTempFile("temp_EN", ".properties"); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    try (FileOutputStream out = new FileOutputStream(tempFile)) { 
     tempFile.deleteOnExit(); 
     copy(r.getUC().getResource("Messages/EN.properties"), out); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    ResourceBundle tempR = null; 
    try { 
     tempR = new PropertyResourceBundle(new FileInputStream(tempFile)); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    Enumeration<String> keys = tempR.getKeys(); 
    //EN 
    Properties propsEN = new Properties(); 
    Properties propsCU = new Properties(); 
    try { 
     propsEN.load(new FileInputStream(ENf)); 
     propsCU.load(new FileInputStream(LANGf)); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    while(keys.hasMoreElements()){ 
     String key = keys.nextElement(); 
     // 
     if(!r.en.containsKey(key)){ 
      propsEN.put(keys, tempR.getString(key)); 
     } 
     if(!r.cu.containsKey(key)){ 
      propsCU.put(keys, tempR.getString(key)); 
     } 
    } 
    try { 
     FileOutputStream ENo = StreamUtil.createOutputStream(ENf); 
     FileOutputStream CUo = StreamUtil.createOutputStream(LANGf); 
     propsEN.store(ENo, ""); 
     propsCU.store(CUo, ""); 
     ENo.close(); 
     CUo.close(); 
    } catch (SecurityException | IOException e) { 
     e.printStackTrace(); 
    } 

    tempFile.delete(); 

LANGf =一些的.properties文件

ENF =部分的.properties文件

r.getUC()。getResource()方法返回一個特定的屬性文件的InputStream的,在這裏我想從中複製所有丟失的密鑰。

副本(文件,文件)只是複製文件。

java.lang.ClassCastException:sun.util.ResourceBundleEnumeration不能在java.util.Properties.store0(未知源)被鑄造爲java.lang.String 〜[:?1.7.0_21] 在java.util中.Properties.store(Unknown Source)〜[?:1.7.0_21] at Bammerbom.UltimateCore.UltimateFileLoader.addConfig(UltimateFileLoader.java:209)〜[?:?] at Bammerbom.UltimateCore.UltimateCore.onEnable(UltimateCore。 java:22)〜[?:?] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:316)〜[Server.jar:git-Bukkit-1.7.9-R0.2-20- g0b2ed13-b3108jnks] at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:324)[Server.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] 在org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:404)[的server.jar:GIT-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] 在org.bukkit.craftbukkit.v1_7_R4 .CraftServer.loadPlugin(CraftServer.java:455)[的server.jar:GIT-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] 在org.bukkit.craftbukkit.v1_7_R4.CraftServer.enablePlugins(CraftServer。 java:389)[Server.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at org.bukkit.craftbukkit.v1_7_R4.CraftServer.reload(CraftServer.java:839)[Server。 jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at org.bukkit.Bukkit.reload(Bukkit.java:303)[Server.jar:git-Bukkit-1.7.9-R0 .2-20-g0b2ed13-b3108jnks] at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:23)[Server.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13- b3108jnks] at org.buk kit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:180)[的server.jar:GIT-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] 在org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCommand (CraftServer.java:740)[的server.jar:GIT-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] 在org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchServerCommand(CraftServer.java:726) [Server.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at net.minecraft.server.v1_7_R4.DedicatedServer.aB(DedicatedServer.java:294)[Server.jar:git- Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:259)[Server.jar:git-Bukkit-1.7.9-R0 .2-20-g0b2ed13-b3108jnks] 在net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:558)[的server.jar:GIT-Bukkit-1.7.9-R0.2-20-g0b2ed13- b3108jnks] 在net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:469)[的server.jar:GIT-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] 在net.minecraft.server .v1_7_R4.ThreadServerApplication.run(SourceFile:628)[Server.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks]

+0

如果您閱讀併發布了堆棧跟蹤,那麼您和我們可以確切地知道發生異常的位置,而不是嘗試猜測。 – 2014-08-30 17:14:22

+0

對不起,添加stacktace – Bammerbom 2014-08-30 19:32:08

回答

0

而不是在您的屬性中存儲每個鍵的值,您存儲鍵枚舉的值。

propsEN.put(keys, tempR.getString(key)); 

應該

propsEN.put(key, tempR.getString(key)); 
       ^-- no 's' here. 

同爲propsCU,效果顯着。

+0

哇,我沒有看到我自己-_-謝謝兄弟 – Bammerbom 2014-08-30 19:42:19

相關問題