记一次文件转码与二进制查看学习

Posted 斌灬小生不才

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一次文件转码与二进制查看学习相关的知识,希望对你有一定的参考价值。

要求:

汉字:GBK内码

西文:ASCII码

间隔符:

 /**
     * 字段间隔符
     */
    private static final String FIELD_INTERVAL = new String(new byte[]{0x01});

    /**
     * 行间隔符
     */
    private static final String LINE_INTERVAL = new String(new byte[] {0x0A});

  

转码:(对西文进行转ASCII码)

private void appendWithAscii(StringBuilder builder, Object... value) {
  for (Object object : value) {
    if (object != null) {
      builder.append(getAscii(String.valueOf(object)));
    }
    builder.append(FIELD_INTERVAL);
  }
}


private String getAscii(String input) {
        byte[] asciiByte = input.getBytes(Charsets.US_ASCII);
        return new String(asciiByte);
    }

  

  

以GBK方式通过二进制形式写入文件:

 /**
     * 以二进制方式写入
     * @param fileName
     * @param content
     * @param encoding
     * @return
     */
    public static boolean writeFileBinary (String fileName, String content, String encoding) {
        boolean flag = false;
        DataOutputStream out = null;
        try {
            out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(fileName)));
            byte[] contentByte = content.getBytes(encoding);
            out.write(contentByte);
            flag = true;
        } catch (IOException e) {
        } finally {
            if (out != null) {
                try {
                    out.close();
                } catch (IOException e) {
                }
            }
            
        }
        
        return flag;
    }

  

文件二进制查看:工具(Binary Viewer)

其中 01 为 0x01,对应上面的  字段间隔符 (域间隔符)

       0A为0x0A,对应上面的 行间隔符

 

 

此内容谨记录工作中所遇之事,深入了解待后续更新.....


未完待续....

 

以上是关于记一次文件转码与二进制查看学习的主要内容,如果未能解决你的问题,请参考以下文章

2018-04-26 《鸟哥的Linux私房菜 基础学习篇(第四版)》 第21章 软件安装_原始码与Tarball 笔记

base64的转码与解码

FFmpeg转码与截图等

使用URLEncoderURLDecoder进行URL参数的转码与解码

url中传递中文参数时的转码与解码

js base64的转码与解码