关于java流的问题,字节流与字符流,为什么要用转换流,把字节转换成字符流,为什么不直接用字符流?

如题所述

这是因为有一些时候系统给你提供的只有字节流,比如说System.in标准输入流。就是字节流。你想从他那里得到用户在键盘上的输入,只能是以转换流将它转换为Reader以方便自己的程序读取输入。再比如说Socket里的getInputStream()很明显只给你提供字节流,你要不行直接用,就得给他套个InputStreamReader()用来读取。网络传输来的字符。希望能够帮到你。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-14
字符流顾名思义读出来的都是字符,所以只用来读文本文件,其他非文件的二进制文件当然要用字节流来读了,最常见的就是一些流媒体文件,都是直接读取的字节啊。至于为什么提供2种流,当然是为了使用方便罗,你硬要把字符拆成字节来读,然后自己再写代码解析出字符也是可以的,反过来也一样。
第2个回答  2013-09-14
简单的说,假如一个一个字节的往文件里输入,一个文件读写次数太大了,很毁硬盘,但如果一个一个字符的保存,硬盘读写次数就会少很多,甚至可以一行一行的保存,这是比较浅的解释

关于java流的问题,字节流与字符流,为什么要用转换流,把字节转换成字符流...
这是因为有一些时候系统给你提供的只有字节流,比如说System.in标准输入流。就是字节流。你想从他那里得到用户在键盘上的输入,只能是以转换流将它转换为Reader以方便自己的程序读取输入。再比如说Socket里的getInputStream()很明显只给你提供字节流,你要不行直接用,就得给他套个InputStreamReader()用...

关于java流的问题,字节流与字符流,为什么要用转换流,把字节转换成字符流...
为什么需要用两种流,而且要转换,不直接用字符流。简单说来,就是字符流不能处理所有的情况,字节流也不能处理所有的情况。所以需要两种转换。先说一下二者的区别:1)字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,2)而字节流处理单元为1个字节, 操作字节和字节数组。字...

为什么要将字节流转换为字符流
如果使用错误的文本编码格式进行转换,就会导致数据的损坏或解析错误。因此,在进行字节流到字符流的转换时,需要确定使用的文本编码格式,并对数据进行正确的转换和解析。3. 跨平台性问题由于不同的操作系统和编程语言对字符编码格式的处理方式不同,因此在进行字节流到字符流的转换时,需要考虑跨平台性问题...

...输出输入的时候,为什么要把字节流转换成字符流再出入或输出?_百度...
所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的,所以它对多国语言支持性比较好!如果是音频文件、图片、歌曲,就用字节流好点,如果是关系到中文(文本)的,用字符流好点 所有文件的储存是都是字节(byte)的储存,在磁盘上保留的并不是文件的字符而是先把字符编码成...

java中已经有了字节流,为什么还需要字符流,字符流的应用场景是什么...
避免了字节流在处理复杂编码时可能出现的混乱和错误。总结来说,虽然字节流在处理二进制数据时效率高,但字符流因其对文本数据的友好处理和易用性,成为了Java编程中不可或缺的一部分。通过理解并灵活运用字符流,我们能更有效地管理和操作文本数据,提升开发效率和代码的可维护性。

Java字符流和字节流对文件操作的区别
Java中的字符在内部都是使用Unicode进行表示的,因此,要正确读取字符数据,需要知道字符的编码字符集,字符流提供编码字符集的指定,如果不指定使用系统默认的方式对字符数据进行编码转换,这个编码字符集不正确,会造成读进来的地字符出现乱码。字节流虽然是读取二进制数据用的,但也可以读取字符文件,按字节...

Java字符流与字节流的区别
1. 字符流与字节流在处理数据的基本单元上存在差异。字符流以Unicode字符为处理单元,通常是两个字节,能够直接操作字符、字符数组或字符串。字节流则以单个字节为处理单元,操作字节和字节数组。2. 字符流能够更好地支持多国语言,因为它是由Java虚拟机将字节转化为Unicode字符而成的。对于涉及中文等文本...

java字节流,字符流问题怎么判断一个文件要用字节流还是用字符流
有中文就用字符流,没中文可以用字节流,这个应该根据你具体情况而定,就是看这个文件里面内容的字符是什么样的,像中文就是一个字节放不下,需要用两个字节来存储,那么字符流一个字符一个字符的往里读,所以能读出来,你用字节流就不行了,一个字符一个字符的往里读,把一个汉字拆成一半了,到时...

Java:理解Java中的字节流和字符流
Java中的流处理是通过流抽象来执行输入输出操作。流分为字节流和字符流两大类。字节流用于处理原始二进制数据,字符流则用于处理Unicode字符。在早期版本的Java中,只有字节流,字符流的概念在Java 1.1版本引入。流实质上是顺序信息的抽象,可链接到不同类型的设备如键盘、网络、磁盘等。字节流和字符流...

字节流VS字符流:揭秘两者的神秘面纱!
字符流在Java编程语言中,基本处理单位是Unicode码元,每个码元占用2字节的空间。字符流主要用于处理文本形式的数据。字符流在输出前实际上要完成Unicode码元序列到相应编码方式的字节序列的转换,并使用内存缓冲区存放转换后得到的字节序列,等待全部转换完毕再一同写入磁盘文件中。总结,字节流与字符流之间主要...

相似回答