有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将字符附加到文件中

我有以下几点:

63,64,65,66,67,68,69,6A,73,74,75,76,77,78,79,7A,
83,84,85,86,87,88,89,8A,92,93,94,95,96,97,98,99

每个元素都是一个字符的十六进制ASCII码:

63 -> 'c'
64 -> 'd'
etc..

所以这里是我代码的相关部分,它应该在一个文件中写入相应的ASCII字符:

private static HashMap<String, Integer> HEXMAP;
static {
    HEXMAP = new HashMap<String, Integer>();
    HEXMAP.put("0", 0);
    HEXMAP.put("1", 1);
    HEXMAP.put("2", 2);
    HEXMAP.put("3", 3);
    HEXMAP.put("4", 4);
    HEXMAP.put("5", 5);
    HEXMAP.put("6", 6);
    HEXMAP.put("7", 7);
    HEXMAP.put("8", 8);
    HEXMAP.put("9", 9);
    HEXMAP.put("A", 10);
    HEXMAP.put("B", 11);
    HEXMAP.put("C", 12);
    HEXMAP.put("D", 13);
    HEXMAP.put("E", 14);
    HEXMAP.put("F", 15);
}


public static void main(String[] args) {
    try {
        PrintWriter writer = new PrintWriter("resultFile");
        for (String str : myString) {
            append(str, writer);
        }
        writer.close();
    }
    catch(Exception e) {

    }
}

private static int strToHex(String str) {
    return HEXMAP.get(str.substring(0, 1)) * 16 + HEXMAP.get(str.substring(1, 2));
}

private static void append(String hex, PrintWriter writer) {
    writer.print((char) strToHex(hex));
}

问题是,我们没有这样做:

enter image description here

我的结果文件中有以下内容:

enter image description here

(上面的屏幕截图来自十六进制编辑器)


共 (0) 个答案