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

时间:2023-12-26 12:30:43
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)可以立刻冲洗当前缓冲区,即将当前缓冲区的内容写入到目的地。