Java webpanel命令未保存

时间:2012-05-08 02:22:47

标签: java list linked-list save command

我有一个从webpanel获取命令的java应用程序,当它执行命令时,它会保存到某处,以便它知道它已经执行了。然后当它下一次执行命令时,它会在执行命令之前检查列表,这可以很好地用于PC,但在Mac上,它似乎不起作用。 它会保存命令,但是当它检查新命令时,它还会执行所有先前的命令。 n3.data包含:

  

1,2,3,4,


每个命令都有一个id(在这种情况下是1 2 3和4),app应该检查它使用了什么命令id然后执行,如果id不在指定文件中(n3.data)
这是代码。

public void save(int id) {
    String osName = System.getProperty("os.name");
    if(osName.contains("Windows")){
    try {
        BufferedWriter bw = new BufferedWriter(new FileWriter(System.getProperty("user.home") + "\\app.data", true));
        bw.write(id + ",");
        bw.close();
    } catch (IOException ex) {
        ex.printStackTrace();
    }
    } else if(osName.contains("Mac")){
        try {
            BufferedWriter bw = new BufferedWriter(new FileWriter(System.getProperty("user.home") + "/n3.data", true));
            bw.write(id + ",");
            bw.close();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}

public void createNew() {
    String osName = System.getProperty("os.name");
    File win = new File(System.getProperty("user.home") + "\\app.data");
    File mac = new File(System.getProperty("user.home") + "/n3.data");
    if(osName.contains("Windows") && !win.exists()){
    try {
        new File(System.getProperty("user.home") + "\\app.data").createNewFile();
    } catch (IOException ex) {
        ex.printStackTrace();
    }
    }else if(osName.contains("Mac") && !mac.exists()){
        try {
            new File(System.getProperty("user.home") + "/n3.data").createNewFile();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}

public void saveNew() {
    String osName = System.getProperty("os.name");
    if(osName.contains("Windows")){
    StringBuilder sb = new StringBuilder();
    for (int i : processedIds) {
        sb.append(i + ",");
    }
    try {
        BufferedWriter bw = new BufferedWriter(new FileWriter(System.getProperty("user.home") + "\\app.data"));
        bw.write(sb.toString());
        bw.close();
    } catch (IOException ex) {
        ex.printStackTrace();
    }
    }else if(osName.contains("Mac")){
        StringBuilder sb = new StringBuilder();
        for (int i : processedIds) {
            sb.append(i + ",");
        }
        try {
            BufferedWriter bw = new BufferedWriter(new FileWriter(System.getProperty("user.home") + "/n3.data"));
            bw.write(sb.toString());
            bw.close();
        } catch (IOException ex) {
            ex.printStackTrace();
    }
    }
}

public void loadSave() throws IOException {
    String osName = System.getProperty("os.name");
    if(osName.contains("Windows")){
        File file = new File(System.getProperty("user.home") + "\\app.data");
        if (file.exists()) {
            BufferedReader br = new BufferedReader(new FileReader(file));
            StringBuilder sb = new StringBuilder();
            String line;
            while ((line = br.readLine()) != null) {
                sb.append(line);
            }
            br.close();
            for (String s : sb.toString().split(",")) {
                try {
                    processedIds.add(Integer.parseInt(s));
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        } else {
            file.createNewFile();
        }
    }else if(osName.contains("Mac")){
        File file = new File(System.getProperty("user.home") + "/n3.data");
        if (file.exists()) {
            BufferedReader br = new BufferedReader(new FileReader(file));
            StringBuilder sb = new StringBuilder();
            String line;
            while ((line = br.readLine()) != null) {
                sb.append(line);
            }
            br.close();
            for (String s : sb.toString().split(",")) {
                try {
                    processedIds.add(Integer.parseInt(s));
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        } else if (!file.exists()){
            file.createNewFile();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我明白了,任何人都有同样的问题,如果文件存在与否,代码无法正确检查。只是修复它,它应该工作。