记一次文件转码与二进制查看学习
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 笔记