黑马程序员技术交流社区

标题: 【厦门校区JavaEE就业8期-每日总结】字节缓冲流&字符流 [打印本页]

作者: 厦门校区    时间: 2019-6-25 15:04
标题: 【厦门校区JavaEE就业8期-每日总结】字节缓冲流&字符流
请根据自己的理解回答下面问题:
1.输入流读取有几种方式,输出流写出有几种方式?
2.字符流和字节流的区别?
3.缓冲流为什么会提高IO流读写的效率?
作者: 王猛虎    时间: 2019-6-25 20:50
1.输入流读取有2种
a.read()一次读取一个字节
b.read(byte[] b)一次读取一个字节数组
输出流写出有3中方式
a.write()一次写一个字节
b.write(byte[] b)一次读取一个字节数组
c.write(byte[] b, int off, int len)一次读写一个数组的部分内容

2.字符流底层,是字节流+编码集
字节流可以复制各种文件(文档,视频,图片等)
字符流不能复制视频、图片,只能复制文本文档
字节流在读取显示文档时,要是碰到中文时,读取显示会发生乱码,字符流通过设置编码不会出现这种情况。

3.缓冲流在内存中有一个缓冲区,可以减少盘符与内存的交互次数,提高读写效率
作者: 李保佳    时间: 2019-6-25 20:54
请根据自己的理解回答下面问题:
1.输入流读取有几种方式,输出流写出有几种方式?
Writer输出
write(int c) 写一个字符
write(char[] cbuf) 写入一个字符数组
write(char[] cbuf, int off, int len) 写入字符数组的一部分
write(String str) 写一个字符串
write(String str, int off, int len) 写一个字符串的一部分
read读取
int read() 一次读一个字符数据
int read(char[] cbuf) 一次读一个字符数组数据


2.字符流和字节流的区别?

字符流:以字符为单位,读写数据的流以字符为单位读写数据,专门用于处理文本文件。
字节流:以字节为单位,读写数据的流。一切文件数据(文本、图片和视频等)在存储时,
都是以二进制数的形式保存,都一个一个的字节,那么传输时一样如此,
所以字节流可以传输任意文件数据,无论使用什么样的流对象,底层传输的始终是二进制数据。
3、缓冲流为什么会提高IO流读写的效率?

因为缓冲流在创建流对象时,创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率

作者: 辛全旺    时间: 2019-6-25 20:58
1.输入流读取有几种方式,输出流写出有几种方式?
        答:输入流读取有三种方式。
        1、字节输入流和字符输入流都有单个读取方法:字节流一次读取单个字节,字符流一次读取者单个字符
        2、字节输入流和字符输入流都有数组读取方法:字节流一次读取一个或者部分字节数组,字符流一次读取一个或者部分字符数组。
        3、字符缓冲输入流的特有方法readLine()可以一次读取一行。
        输出流写出有三种方式。
        1、字节输入流和字符输入流都有单个写出方法:字节流一次写出单个字节,字符流一次读写出单个字符。
        2、字节输入流和字符输入流都有数组写出方法:字节流一次写出一个字节数组,字符流一次写出一个字符数组。
        3、字符输出流可以一次写出一个或者部分字符串。
       
2.字符流和字节流的区别?
        答:1、字符流是字节流加编码表,字符流是字节流在读写之前根据指定的编码表变进行解码和编码。
        2、字节流可以传输各种文件,字符流只能传输文本本件。
        3、字节输入输出流一次读写一个字节或者字节数组,字符输入输出流一次读写一个字符或者字符数组,字符缓冲输入流可以一次读取一行。
       
3.缓冲流为什么会提高IO流读写的效率?
        答:因为缓冲流会在内存中创建有一个数组,读写的数据先会储存在数组中,储存一定长度再进行读写,减少内存和硬盘交互次数,提升效率。
作者: 邹楷能    时间: 2019-6-25 20:59
1.输入流读取有几种方式,输出流写出有几种方式?
答:输入流有字节输入流和字符输入流两种
   (1)字节输入流有字节输入流(FileInputStream)和字节缓冲输入流(BufferedInputStream)。
   (2)字符流有字符输入流(InputStreamReader)和字符缓冲输入流(BufferedReader)。
    输出流有字节输出流和字符输出流两种
   (1)字节输出流有字节输出流(FileOutputStream)和字节缓冲输出流(BufferedOutputStream)。
   (2)字符输出流有字符输出流(OutputStreamWriter)和字符节缓冲输出流(BufferedWriter)。

2.字符流和字节流的区别?
答:字符流的实质是字节流+编码表,因此字符流往往应用在进行文本内容的复制和显示上,但不能复制非文本文件。而字节流则是万能的流,能够复制所有类型的文件。字节流是以一个字节为单位传输的,字符流是以一个字符为单位传输的。字节流读写的时候是按字节读写,字符流读写的时候是按字符读写的。

3.缓冲流为什么会提高IO流读写的效率?.
答:因为缓冲流会在内存中开辟一个缓冲区,输入的时候讲数据直接读到缓冲区中,输出的时候直接从缓冲区中写到硬盘中,减少了硬盘和内存的交互次数,从而提高效率。
作者: 张遵荣    时间: 2019-6-25 21:10
请根据自己的理解回答下面问题:
1.输入流读取有几种方式,输出流写出有几种方式?
答:输入流读取有两种方式,输出流有五种方式

2.字符流和字节流的区别?
答:字符流的底层实现就是字节流+编码集。字节流可以使用在任何进行的文件复制的场景,但是不适用于在对文本数据进行传输过程
中有需求于显示传输过程的场景,不同的编码模式,会导致在read读取过程中,造成乱码。
字符流更适应于显示文本等数据的场景,但是在非文本入图片数据等,不应该使用字符流,图片等数据在字节码上是无序的,在使用字符流
来读取图片文件(字节数据),编码集的解码显示时,不识别的字节码会被遗弃造成数据遗漏,不适合图片的传输。


3.缓冲流为什么会提高IO流读写的效率?
答:缓冲流时在内存中有一块缓存,在进行读取时,多次的读取,才进行一次写入,由此缓存的存在,大大减少了底层中交互的次数,
提高了效率
作者: 朱铭恺    时间: 2019-6-25 21:11
1.输入流读取有几种方式,输出流写出有几种方式?

输入流有字节输入流和字符输入流
字节输入流有读取字节和读取字节数组的方式
字符输入流有读取字符,读取字符数组的方式以及字符缓冲流所独有的读取一行的方式

输出流有字节输出流和字节输入流
字节输出流有写出字节和写出字节数组的方式
字符输出流有写出字符,写出字符数组的方式以及字符缓冲流所独有的写出一行的方式

2.字符流和字节流的区别?

字节流以字节为基本单位传输,字符流以字符为基本单位传输
字节流是万能流,字符流不可传输非文本信息,会造成数据丢失
字符流底层为:字节流+编码表



3.缓冲流为什么会提高IO流读写的效率?

缓冲流在内存中提供缓冲区,减少底层交互次数,以此提高读写效率
作者: 许雅丽    时间: 2019-6-25 21:16
1.输入流读取有几种方式,输出流写出有几种方式?

字节流:

        输入流有2种:1次读1个字节、1个字节数组

        输出流有2种:1次写1个字节、1个字节数组的一部分

字符流:

        输入流有3种:1次读1个字符、1个字符数组、1个字符串

        输出流有5种:1次写1个字符、1个字符数组、1个字符数组的一部分、1次写1个字符串、1次写1个字符串的一部分


2.字符流和字节流的区别?

字符流用于查看或显示文档中的内容,可复制文档,当读取的文档出现乱码时,需要使用字符流

字节流用于复制文档、图片、视频、音乐、等各种形式的文件


3.缓冲流为什么会提高IO流读写的效率?

在内存中增加一个数组,该数组作为缓冲,目的是继续减少硬盘和内存的交互次数从而提高效率

作者: 孙健健    时间: 2019-6-25 21:24
请根据自己的理解回答下面问题:
1.输入流读取有几种方式,输出流写出有几种方式?
输入流读取有俩种方式,字节输出流写出有俩种方式。字符输出流写出有5种方式

2.字符流和字节流的区别?

字符流的本质就是字节流加上编码集
传输文本文档使用字符流
字节流是万能的流,所有的数据传输都是以字节流的形式进行传输的,但是传输文本
信息的时候,如果进行显示就不可以使用字节流,因为字节流无法判断哪些字节能够组成一个字符,所以在进行
字节读取的时候,会出现乱码

3.缓冲流为什么会提高IO流读写的效率?
因为缓冲流在内存中增加了一个数组,
减少了硬盘和内存的交互次数,提高了效率
通过设置这样的输出流,应用程序可以向底层输出流写入字节,而不必为写入的每个字节导致底层系统的调用
作者: 许俊杰    时间: 2019-6-25 21:30
1.输入流读取有几种方式,输出流写出有几种方式?
      字节输入流读取有两种方式:
         1、read()                       一次读取一个字节
         2、read(byte[] bytes)    一次读取一个字节数组
      字符输入流读取有两种方式:
         1、read()                      一次读取一个字符
         2、read(char[] chars)   一次读取一个字符数组


      字节输出流写出有三种方式:
         1、write(int a)                                                一次写一个字节
         2、write(byte[] bytes)                                    一次写一个字节数组
         3、write(byte[] bytes,int begin,int length)   一次写一个字节数组的一部分
      字符输出流写出有五种方式:
         1、write(int a)                                                一次写一个字符
         2、write(char[] chars)                                    一次写一个字符数组
         3、write(char[] chars,int begin,int length)   一次写一个字符数组的一部分
         4、write(String s)                                           一次写一个字符串
         5、write(String s,int begin,int length)          一次写一个字符串的一部分

2.字符流和字节流的区别?
      字节流可以用来复制图片、视频、音频、文本,所有数据传输都可以使用字节流来传输,但是不能用来输出文本信息,字节流无法判断哪些字节可以组成字符,会出现乱码
      字符流可以输出文本信息,可以对信息按照指定编码格式进行解码、编码

3.缓冲流为什么会提高IO流读写的效率?
      缓冲流会在内存中增加一个数组,可以减少硬盘与内存的交互次数,使用缓存流特有的方法可以更效率的读取和输出。

作者: 何凯    时间: 2019-6-25 21:34
1.输入流读取有几种方式,输出流写出有几种方式?

输入流读取有两种 1.一次读取一个字节 2.一次写入一个字节数组

输出流有五种写入 1.一次写入一个字节 2.一次写入一个字节数组
3.一次写入一个字符数组的一部分 4.一次写入一个字符串 5.
一次写入一个字符串的一部分



2.字符流和字节流的区别?

字节流是所有文件都能传输,但是要想读取文本的的时候附带显示,那么会因为编码问题而导致乱码,
所以才有了字符流解决这个问题

字符流的本质就是字节流加上一个编码集,读取文本的时候会按照编码集来解码出文本从而显示,
但是字符流不能传输其他文件,会造成文件损坏



3.缓冲流为什么会提高IO流读写的效率?
因为缓冲流内置了一个缓冲区 在读写的时候减少了内存和硬盘的交换次数从而提高了效率
作者: 陈伟锋    时间: 2019-6-25 21:38
1.输入流读取有几种方式,输出流写出有几种方式?
(1)输入流分为字节输入流,字符输入流
字节输入流的读取方式有两种
一次读取一个字节          read(int b)
一次读取一个字节数组      read(int[] b)

字符输入流的读取方式有两种
一次读取一个字符          read(int ch)
一次读取一个字符数组      read(char[] ch)

(2)输出流分为字节输出流和字符输出流
字节输出流的输出方式分为两种
一次写一个字节               write(int b)
一次写一个字节数组的一部分   write(byte[] b,int off, int len)

字符输出流的输出方式有五种
一次写一个字符                write(int a)
一次写一个字符数组            write(char[] ch)
一次写一个字符数组的一部分    write(char[] ch,int off,int len)
一次写一个字符串              write(string s)
一次写一个字符串的一部分      write(string s, int off,int len)

2.字符流和字节流的区别?
字符流可以对文本文档进行显示阅读,但是不能对非文本文件进行复制
字节流复制文件的时候(可以是文本 音频 视频)使用字节流,所有的数据形式都可以用字节流进行传输,但是要对文本信息进行显示输出的时候不能使用字节,一读一写会出现乱码

3.缓冲流为什么会提高IO流读写的效率?
缓冲流会在内存中生成默认大小的数组缓冲区,读取的数据存满缓冲区后才会将全部数据输出,这个过程减少了内存和硬盘的交互次数,大大提高了数据的传输效率
作者: 黎先帆    时间: 2019-6-25 21:40
1.输入流读取有几种方式,输出流写出有几种方式?
字节
输入流读数据有两种方式
int read() 一次读一个字节
int read(char[] ch) 一次读一个字节数组

输出流写数据有3种方式
void write(int b)  将指定的字节写入此文件输出流   一次写一个字节数据
void write(byte[] b)  将 b.length字节从指定的字节数组写入此文件输出流   一次写一个字节数组数据
void write(byte[] b, int off, int len)  将 len字节从指定的字节数组开始,从偏移量off开始写入此文件输出流   一次写一个字节数组的部分数据

字符
输入流读数据有两种方式
int read() 一次读一个字符
int read(char[] ch) 一次读一个字节数组
字符缓冲输入流读数据特有功能
String readLine()  读一行文字。 结果包含行的内容的字符串,不包括任何行终止字符如果流的结尾已经到达,则为null

输出流写数据有5种方式
write(int c)  写一个字符
write(char[] ch)  写入一个字符数组
write(char[] ch, int off, int len)  写入字符数组的一部分
write(String str) 写一个字符串
write(String str, int off, int len)  写一个字符串的一部分
字符缓冲输出流写数据特有功能
void newLine()  写一行行分隔符,行分隔符字符串由系统属性定义

2.字符流和字节流的区别?
字符流:可以复制文本文件,可以复制文本文件,可以进行文本内容的显示,但是字符流不能复制非文本文件
字节流:复制文件(可以是图片、音频、视频、文档...)的时候,使用字节流,字节流是万能的流,所有的数据传输都是以字节流的形式进行传输的
但是,当要对文本信息进行显示的时候,不能使用字节流,因为字节流无法判断哪些字节能够组成一个字符,所以在进行字节读取的时候,转换文字符会出现乱码

3.缓冲流为什么会提高IO流读写的效率?
缓冲流就是在内存中添加了一个数组(默认长度文8912),可以减少硬盘和内存的交互次数,从而提高效率
作者: 刘鸿昌    时间: 2019-6-25 21:44
1.输入流读取有几种方式,输出流写出有几种方式?

字节流                                                                  
输入流读取                                   
① 一次读取一个字节
②一次读取一个字节数组
输出流写出
①一次写一个字节
②一次写一个字节数组
③一次写一个字节数组的一部分

字符流
输入流读取
①一次读一个字符
②一次读一个字符数组
③一次读取一个字符串
输出流写出
①一次写一个字符
②一次写一个字符数组
③一次写一个数组的一部分
④一次写一个字符串
⑤一次写一部分字符串


2.字符流和字节流的区别?

复制文件(可以是图片、音频、视频、文档等二进制文件)的时候,使用字节流,所有数据传输都是以字节流形式进传输的,
当要对文本信息进行显示时不能使用字节流,因为字节流无法判断哪些字节能够组成一个字符,所以在进行字节读取时,转换为字符会出现乱码。
字符流可以复制文本文件,可以进行文本内容显示,但是不能复制非文本文件。


3.缓冲流为什么会提高IO流读写的效率?
在内存中有缓冲区,减少内存和文件的交互次数,提高操作效率。

作者: 林振达    时间: 2019-6-25 21:44
1.输入流读取有几种方式,输出流写出有几种方式?
Writer输出
write(int c) 写一个字符
write(char[] cbuf) 写入一个字符数组
write(char[] cbuf, int off, int len) 写入字符数组的一部分
write(String str) 写一个字符串
write(String str, int off, int len) 写一个字符串的一部分
read读取
int read() 一次读一个字符数据
int read(char[] cbuf) 一次读一个字符数组数据
请根据自己的理解回答下面问题:
1.输入流读取有几种方式,输出流写出有几种方式?
Writer输出
write(int c) 写一个字符
write(char[] cbuf) 写入一个字符数组
write(char[] cbuf, int off, int len) 写入字符数组的一部分
write(String str) 写一个字符串
write(String str, int off, int len) 写一个字符串的一部分
read读取
int read() 一次读一个字符数据
int read(char[] cbuf) 一次读一个字符数组数据
2.符流和字节流的区别?
        答:1、字符流是字节流加编码表,字符流是字节流在读写之前根据指定的编码表变进行解码和编码。
        2、字节流可以传输各种文件,字符流只能传输文本本件。
3.缓冲流为什么会提高IO流读写的效率?
暖冲流在内存中开辟一个空间存储读写数据减少了硬盘的和内存的交互次数提高了读写效率。
作者: 刘鸿昌    时间: 2019-6-25 21:45
1.输入流读取有几种方式,输出流写出有几种方式?

字节流
输入流读取
① 一次读取一个字节
②一次读取一个字节数组
输出流写出
①一次写一个字节
②一次写一个字节数组
③一次写一个字节数组的一部分

字符流
输入流读取
①一次读一个字符
②一次读一个字符数组
③一次读取一个字符串
输出流写出
①一次写一个字符
②一次写一个字符数组
③一次写一个数组的一部分
④一次写一个字符串
⑤一次写一部分字符串

2.字符流和字节流的区别?

复制文件(可以是图片、音频、视频、文档等二进制文件)的时候,使用字节流,所有数据传输都是以字节流形式进传输的,
当要对文本信息进行显示时不能使用字节流,因为字节流无法判断哪些字节能够组成一个字符,所以在进行字节读取时,转换为字符会出现乱码。
字符流可以复制文本文件,可以进行文本内容显示,但是不能复制非文本文件。


3.缓冲流为什么会提高IO流读写的效率?
在内存中有缓冲区,减少内存和文件的交互次数,提高操作效率。

作者: 郭付民    时间: 2019-6-26 21:34
1.输入流读取有几种方式,输出流写出有几种方式?

输入流读取方式:
字节输入流和字节缓冲输入流可以一次读一个字节,也可以一次读一个或者部分字节数组。
字符输入流读取方式可以一次读一个字符,也可以一次读一个或者部分字符数组。
字符缓冲输入流相比较字符输入流更加强大,有一个特有的方法可以一次读取一个文本行。
输出流写出方式:
字节输出流和字节缓冲输出流可以一次写一个字节,也可以一次写一个或者部分字节数组。
字符输出流和字符缓冲输出流写出方式可以一次写一个字符,一次写一个或者部分字符数组,也可以一次写一个或者部分字符串。

2.字符流和字节流的区别?

(a) 字符流的本质是字节流加上编码集,根据编码集,将读到的字节转换为字符,但是在保存时还是以字节保存。
(b)字符流用到缓冲区,字节流不需要用缓冲区。
(c)字符流操作字符、字符数组或字符串, 而字节流处理单元为1个字节,操作字节和字节数组。
(d)字符流可以复制文本文件,可以进行文本内容的显示,但是字符流不能复制非文本文件,字节流是万能流。

3.缓冲流为什么会提高IO流读写的效率?

在创建缓冲流对象时,这个对象在内存中流都对应了一个大小为8192的字节数组,当调用read()或者write()方法读写数据时,首先将读写的数据存入定义好的字节流数组,然后将字节数组的数据一次性的读写到资源中,可以减少硬盘和内存的交互次数,效率比字节流大大提高。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2