String.getBytes()和String.tocharArray(),字节数组和字符数组的区别

Posted 化身孤岛的鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了String.getBytes()和String.tocharArray(),字节数组和字符数组的区别相关的知识,希望对你有一定的参考价值。

String.getBytes()是将字符串转化为一个字节数组。而String.toCharArray()是将一个字符串转化为一个字符数组。

【例如】

byte bys[] ="国庆60周年".getBytes();

char chs[]="国庆60周年".toCharArray();

【那么字节数组和字符数组有什么区别呢?】

        字节输入流和输出流的read和write方法使用字节数组读写数据,即以字节为基本单文处理数据。因此,字节流不能很好地操作Unicode字符,例如,一个汉字在文件中占用2个字节,如果使用字节流,读取不当会导致“乱码”的现象。字节类 FileInputStream 和FileOutputStream都是io下的类,而字符输出流 FileReader和字符输入流FileWriter都是Reader和Writer的子类。

        当用构造方法创建指向一个文件的输出流是,如果参数append取值为true,输出流不会刷新所指向的文件(假如文件已存在),输出流的wirite的方法将从文件的末尾开始向文件写入数据,参数append取值false,输出流将刷新所指向的文件(假如文件已经存在)。append具有刷新功能;

        对于Writer流,write方法将数据首先写入到缓冲区,每当缓冲区溢出时,缓冲区的内容被自动写入到目的地,如果关闭流,缓冲区的内容会立刻被写入到目的地。流调用flush()(不是flash)可以立刻冲洗当前缓冲区,即将当前缓冲区的内容写入到目的地。

以上是关于String.getBytes()和String.tocharArray(),字节数组和字符数组的区别的主要内容,如果未能解决你的问题,请参考以下文章

java String.getBytes()编码问题——String.getBytes(charset)

String.getBytes()

Java:String.getBytes(Charset) 与。 Charset.encode(String) 用于 OutputStream

java中String.getBytes()的用法

String.getBytes(),源码之下,了无秘密

java 中string与bytes的转换总结