FileOutputStream编写奇怪的字符

时间:2014-12-23 17:22:34

标签: java byte fileoutputstream

我正在尝试将一个字节数组写入一个FileOutputStream的文件,如下所示:

public static void writeFileContents(String path, byte[] contents) {
    try(FileOutputStream stream = new FileOutputStream(path)) {
        stream.write(contents);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

填充contents的地方如下:

byte[] bytes = new byte[32 * 32];
Arrays.fill(bytes, (byte) 2); 

但是我在文件中收到了奇怪的字符,它是白色框中的字母“STX”。我做错了什么?

2 个答案:

答案 0 :(得分:1)

您获得的ASCII相当于(byte) 2(或“文本开头”)。像,

System.out.println((char) ((byte) 2));

这是一个不可打印的角色。

答案 1 :(得分:1)

ASCII代码0 - 31是控制字符,没有定义的可显示等效项。您可以在此处查看完整表格:http://www.asciitable.com/

相关问题