java基础-io

Posted 豆莱浆渠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java基础-io相关的知识,希望对你有一定的参考价值。

1.编码

public class EncodeDemo {
    public static void main(String[] args) {
        String s = "聪123";
        byte[] b1 = s.getBytes();    //转换成字节序列用的是项目默认的编码
        for (byte b : b1) {
            //把字节转换成以16进制的方式显示
            System.out.print(Integer.toHexString(b & 0xFF) + " ");
        }
        System.out.println();
        try {
            //gbk编码中文占用2个字节,英文占用1个字节
            byte[] b2 = s.getBytes("gbk");
            for (byte b : b2) {
                System.out.print(Integer.toHexString(b & 0xff) + " ");
            }
            System.out.println();

            //utf-8编码中文占用3个字节,英文占用1个字节
            byte[] b3 = s.getBytes("utf-8");
            for (byte b : b3) {
                System.out.print(Integer.toHexString(b & 0xff) + " ");
            }
            System.out.println();

            //java是双字节编码 utf-16be编码
            //utf-16中文占用三个字节,英文占用2个字节
            byte[] b4 = s.getBytes("utf-16be");
            for (byte b : b4) {
                System.out.print(Integer.toHexString(b & 0xff) + " ");
            }
            System.out.println();

            /**
             * 当你的字节序列是某种编码时,这个时候想要把字节序列变成字符串,也需要这种编码方式,否则会出现乱码
             */
            String s1 = new String(b4);
            System.out.println(s1);
            String s2 = new String(b4, "utf-16be");
            System.out.println(s2);
            /**
             * 文本文件就是字节序列,可以是任意的字节序列,如果我们在中文机器上创建文本文件,那么这个机器只认识ansi编码
             * 联通,联这是一种巧合,他们正好符合了utf-8编码规则
             */
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }
}

  

2.待续

以上是关于java基础-io的主要内容,如果未能解决你的问题,请参考以下文章

Java语言基础之方法的设计

JSP基础

iOS代码片段CodeSnippets

IOS开发-OC学习-常用功能代码片段整理

JSP 基础语法

Java基础:封装