【问题标题】:FileOutputStream writing strange charactersFileOutputStream 写入奇怪的字符
【发布时间】:2015-02-21 21:03:37
【问题描述】:

我正在尝试将字节数组写入带有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”。我做错了什么?

【问题讨论】:

    标签: java byte fileoutputstream


    【解决方案1】:

    您将获得等同于(byte) 2(或“文本开头”)的ASCII。喜欢,

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

    这是一个不可打印的字符。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2016-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-06
        • 2015-06-24
        • 2016-02-18
        • 1970-01-01
        相关资源
        最近更新 更多