A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1、缓冲流为什么会提高IO流读写的效率?
缓冲流提高IO流读写效率的原理:
创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率

2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的
产生乱码原因:编解码方式不一致,比如保存文件时采用GBK编码,而读取文件时采用UTF-8进行解码,导致乱码
解决:使用转换流InputStreamReader、OutputStreamWriter,可以指定字符集,以保证编解码方式一致

3、序列化流中的serialVersionUID的作用
作用:Serializable 接口给需要序列化的类,提供了一个序列版本号。 serialVersionUID 该版本号的目的在于验证序列化的对象和对应类是否版本匹配

4、请根据自己的语言表述IO流的体系
基本流:分为字节流和字符流,分别以InputStream、OutputStream和Reader、Writer为超类
缓冲流:分为字节缓冲流BufferedInputStream、BufferedOutputStream
        和字符缓冲流BufferedReader、BufferedWriter
转换流:InputStreamReader、OutputStreamWriter
序列化流:ObjectInputStream、ObjectOutputStream
打印流:PrintStream
回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?
   缓冲流是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。

2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
   由于IDEA的设置,都是默认的UTF-8编码,当读取Windows系统中创建的文本文件时,由于Windows系统的默认是GBK编码,就会出现乱码。在读取时使用序列化流转码,转成与文件相同的编码

3、序列化流中的serialVersionUID的作用
serialVersionUID 的目的在于验证序列化的对象和对应类是否版本匹配。

4、请根据自己的语言表述IO流的体系
IO流包括基本IO流和高效流、转化流、序列化、打印流
基本IO流有:字节输入输出流、字符输入输出流;
高效流也称缓冲流:也有字节、字符的输入输出流;
转化流:有两个InputStreamReader和OutputStreamWriter,当需要指定编码进行操作时使用
序列化:当想对对象进行IO流存储时用到的ObjectOutputStream和ObjectInputStream
打印流:对输出流的包装
回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?
因为他会先创建一个缓冲区数据,当你要输出或者输入的时候,
他会先进入缓冲区数据,然后通过缓冲区输入或者输出。

2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
由于编码表的不同,当读取的时候使用的编码表与写入的时候使用的编码表不同的时候,
会发生乱码问题,解决方法就是让读取的编码表跟写入的编码表相同,就不会出现乱码的情况。



3、序列化流中的serialVersionUID的作用
作用:当对象有变化的时候,也可以进行序列化,反序列化

4、请根据自己的语言表述IO流的体系
输出流:从内存写出数据到其他设备
输入流:把数据从其他设备读取到内存
缓冲流:提高读写的效率
序列化流:将对象转换成文件,进行持久化存储
转换流:就是将不同的编码转换成相同的编码进行读写
打印流:将你想要输出的内容打印输出
回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?
在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。

2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
当编码与解码不一致时,会发生乱码
按编码方式进行解码

3、序列化流中的serialVersionUID的作用
验证序列化的对象和对应类是否版本匹配

4、请根据自己的语言表述IO流的体系
IO流按照流向分分为输入流和输出流
IO流按照格局分分为字节流和字符流
在这些的基础上,又因不同的需求分为不同的流:字节流、字符流、缓冲流、转换流、打印流、序列化流等这些流都继承了各自父类的成员方法
缓冲流中的BufferedReader拥有自己特有的成员方法readLine()方法
BufferedWriter拥有自己特有的成员方法newLine()方法
打印流拥有自己特有的方法println()方法和print()方法
缓冲流的作用是增强流的读写速度
转换流的存在是为了实现不同的编码表之间内容的转换
回复 使用道具 举报

1、缓冲流为什么会提高IO流读写的效率?
因为缓冲流在IO流读写过程中,会通过缓冲区进行数据的统一读写,降低IO读写数据的次数,提高效率。

2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
在读写过程中,解码和编码所用的编码表格式不一致时,会发生乱码问题,因为所参照的编码表规则不一样。
因此在解码编码时,要保证编码表格式一致。

3、序列化流中的serialVersionUID的作用
序列化流中的serialVersionUID保证对象创建后对对象的定义进行修改,该对象的UID值也不会发生改变,这样在反序列化是就不会出现InvalidClassException 异常。

4、请根据自己的语言表述IO流的体系
IO流的基本流为字节输入输出流和字符输入输出流,但是该基本流方法效率较低。
为了提高效率,在该基本流的基础上开发了字节缓冲流和字符缓冲流,提高效率,
因为编码解码所用的字符集有很多类型,因此为了解决不同字符集间编码的乱码问题,在IO基本流的基础上开发了 InputStreamReader类和OutputStreamWriter类解决该问题。
为了将JAVA中的对象进项持久化存储,在IO基本流的基础上开发了ObjectOutputStream类和ObjectInputStream类对对象进行存储和解析。
为了能够方便地打印各种数据类型的值,在IO基本流的基础上开发了PrintStream类,进行数据打印,平时敲代码所用的System.out.println和System.out.print就是来自于该类。
回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?
JVM建立缓冲流对象时,会同时建立一个缓冲区数组,读写时先将数据存入缓冲区数组,待其存满后再将数据返回,这样一来减少了内存和硬盘的IO次数,也即提高了读写的效率。

2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
当文件的编码格式和解码格式不一致时会发生乱码问题,例如若一个文件编码时用的是GBK格式,而解码时采用的是utf8格式,则显示出来的就是乱码;
可以通过转换流InputStreamReader类和OutputStreamWriter类搭建字符和字节的桥梁,在创建这两个类的对象时指定编码的格式,即可正确的读写文件。

3、序列化流中的serialVersionUID的作用
若某个类的某些对象被序列化后,又对这个类进行了修改,则在反序列化的时候会重新计算序列版本号,前后的序列版本号不一致则反序列化时会抛出 InvalidClassException 异常。
因此在类中加入成员变量serialVersionUID,用static、final和long修饰,这样即使之后修改了类中的内容,序列版本号也不会被修改,因此可以顺利进行反序列化。

4、请根据自己的语言表述IO流的体系
IO流大体以两种划分方式为根本:输入与输出、字节与字符,两两组合成了4种流的根类,也即InputStream、OutputStream、Reader和Writer。在这4个根类之下,又因功能需求的不同,而分别有几个子类,如为解决IO的效率问题的类:缓冲流(BufferedInputStream等);为解决字符和字节转换问题的类:转换流(InputStreamReader、OutputStreamWriter);为解决对象序列化问题的类:ObjectInputStream;还有其他如过滤流(FilterInputStream等)、文件流(FileInputStream等)、管道流(PipedInputStream等)、音频流(AudioInputStream等)等
回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?
答:在创建缓冲流对象的时候会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读书效率
2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
答:用和文件不符合的编码的去读取就会乱码,可以使用 InputStreamReader来指定编码来打印,或者使用outputStreamWriter对文件进行重新指定编码
3、序列化流中的serialVersionUID的作用
答:解决该类的序列版本号与从流中读取的类描述符的版本号不匹配
4、请根据自己的语言表述IO流的体系
答;IO流是用来处理设备之间的数据传输
    按流向分为:输出流和输入流
    操作数据分为:字节流和字符流
    java对数据的操作是通过流
回复 使用道具 举报
叶凌青
1、缓冲流为什么会提高IO流读写的效率?
因为缓冲流有缓冲区,可以减少java程序和jvm以及os的交互次数,从而提高了效率。

2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
编码的格式和解码的格式不一致的情况下会发生乱码问题。使用转换流,可以使用我们自定义的编码解码格式,可以解决乱码问题。

3、序列化流中的serialVersionUID的作用
在对数据进行修改后,想正常执行反序列化流就必须先执行序列化流,否则会抛出异常,不过如果设置固定serialVersionUID,
那么即使对数据进行修改,在不运行序列化流的情况下也可以执行反序列化流。

4、请根据自己的语言表述IO流的体系
IO指的是Input/Output,IO流:输入输出流。 我们称为数据流。
在Java程序中,对于数据的输入 / 输出操作都是以流的方式进行的;
按流向分:输入流和输出流;
按格局分:字节流个字符流。
回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?   
因为缓冲流有一个缓冲区,这个缓冲区一次性存储多次要操作的数据,减少java程序和jvm、os交互的次数,所以会提高效率,如果没有指定缓冲区的大小的话默认情况下是8192字节。           
2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
写入的编码格式跟打开文件时的解码格式不一致就会发生写入乱码问题。编码的格式和解码的格式不一致就会产生乱码问题。使用转换流就能够自定义读取文件的解码格式或者写入文件的编码格式,让不一样的格式变成一样就可以解决乱码问题。
3、序列化流中的serialVersionUID的作用
serialVersionUID就是序列号,在序列化流中程序会根据代码给class文件和生成的文件匹配一样的序列号,在反序列化要读取这些信息的时候会比较这两个的序列号是否一样,如果一样就能顺利读取,如果不一样就会抛出异常。我们可以使用静态关键字static 和Final关键字去修饰serialVersionUID,赋值一个固定的常量,这样不管对象的类如何变化序列号都不会改变,也就不会发生反序列化异常。
4、请根据自己的语言表述IO流的体系
1、IO流中有4个基类:1、字节输入流 InputStream  2、字符输入流 Reader 3、字节输出流 OutputStream 4、 字符输出流。
2、按照流向分:输出流和输入流。
3、按照数据传输单位分:字节流:以字节为单位传输数据的流    字符流:以字符为单位传输数据的流。
回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?
缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。

2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
按照A规则存储,同样按照A规则解析,那么就能显示正确的文本符号。反之,按照A规则存储,再按照B规则解析,就会导致乱码现象。
通过转换流InputStreamReader和OutputStreamWriter可以根据指定的编码规则读取或写出。

3、序列化流中的serialVersionUID的作用
Serializable 接口给需要序列化的类,提供了一个序列版本号。serialVersionUID 该版本号的目的在于验证序列化的对象和对应类是否版本匹配。
可以将serialVersionUID写死,防止修改对象导致抛出一InvalidClassException异常。

4、请根据自己的语言表述IO流的体系
(1)IO主要分为字节流、字符流以及他们的增强流;
(2)字节流包括输出流InputStream,输出流OutputStream及其他们的子类,常用的是FileOutputStream和FileInputStream这两个子类;
(3)字符流包括输入流Reader和输出流Writer及其他们子类,常用的是FileReader和FileWriter两个子类
(4)增强流包括缓冲流(字符字节及其输入输出共四类),转换流(输入和输出两种)序列流(输入输出)和打印输出流(输出);
        a.缓冲流主要是用来提高读写效率的,其内部自带缓冲区,默认为8KB,可设置,对字符的读写提供了行读取和写入通用换行符;
        b.转换流主要是用来解决字符文件的编码问题,可以指定字符编码对字符文件进行读写,避免乱码问题;
        c.序列流主要是用来实现对象的序列化(将对象存储到文件中)和反序列化(从对象文件中直接读取对象信息,创建对象);
        d.打印输出流主要是用于将各种类型的数据以字符串形式输出到指定的目标例如控制台或某个文件。
回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?
缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。

2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
按照A规则存储,同样按照A规则解析,那么就能显示正确的文本符号。反之,按照A规则存储,再按照B规则解析,就会导致乱码现象。
通过转换流InputStreamReader和OutputStreamWriter可以根据指定的编码规则读取或写出。

3、序列化流中的serialVersionUID的作用
Serializable 接口给需要序列化的类,提供了一个序列版本号。serialVersionUID 该版本号的目的在于验证序列化的对象和对应类是否版本匹配。
可以将serialVersionUID写死,防止修改对象导致抛出一InvalidClassException异常。

4、请根据自己的语言表述IO流的体系
(1)IO主要分为字节流、字符流以及他们的增强流;
(2)字节流包括输出流InputStream,输出流OutputStream及其他们的子类,常用的是FileOutputStream和FileInputStream这两个子类;
(3)字符流包括输入流Reader和输出流Writer及其他们子类,常用的是FileReader和FileWriter两个子类
(4)增强流包括缓冲流(字符字节及其输入输出共四类),转换流(输入和输出两种)序列流(输入输出)和打印输出流(输出);
        a.缓冲流主要是用来提高读写效率的,其内部自带缓冲区,默认为8KB,可设置,对字符的读写提供了行读取和写入通用换行符;
        b.转换流主要是用来解决字符文件的编码问题,可以指定字符编码对字符文件进行读写,避免乱码问题;
        c.序列流主要是用来实现对象的序列化(将对象存储到文件中)和反序列化(从对象文件中直接读取对象信息,创建对象);
        d.打印输出流主要是用于将各种类型的数据以字符串形式输出到指定的目标例如控制台或某个文件。
回复 使用道具 举报

1、缓冲流为什么会提高IO流读写的效率?
答:
缓冲流在创建流对象的时候,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,以此来提高读写效率。
2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
答:
由于编码表的不同,当读取的时候使用的编码表与写入的时候使用的编码表不同的时候,会发生乱码问题,解决方法就是让读取的编码表跟写入的编码表相同,就不会出现乱码的情况。
3、序列化流中的serialVersionUID的作用
答:
作用在于固定序列号,让它不会因为.class修改发生序列变化,当版本发生变化时,反序列化会抛出InvalidClassException异常
4、请根据自己的语言表述IO流的体系
答;
IO流体系可按照最小单位分为字符流、字节流,根据流向可分为输入流和输出流
在这四类基础流之上还有提高数据吞吐能力的缓冲流、解决编解码乱码问题的转换流,以及序列化流,序列化流的作用是将对象信息永
回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?
会在内存中创建缓冲区,内存间的读写效率最高
2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
使用idea)读写GBK码表编写的文件会出现乱码,编码和解码的规则不一致,idea默认使用的是utf-8的码表,使用转换流中的inputstreamreader指定GDK的码表方式来读
3、序列化流中的serialVersionUID的作用
做标记
4、请根据自己的语言表述IO流的体系
(1)IO主要分为字节流、字符流以及他们的增强流;
(2)字节流包括输出流InputStream,输出流OutputStream及其他们的子类,常用的是FileOutputStream和FileInputStream这两个子类;
(3)字符流包括输入流Reader和输出流Writer及其他们子类,常用的是FileReader和FileWriter两个子类
(4)增强流包括缓冲流(字符字节及其输入输出共四类),转换流(输入和输出两种)序列流(输入输出)和打印输出流(输出);
        a.缓冲流主要是用来提高读写效率的,其内部自带缓冲区,默认为8KB,可设置,对字符的读写提供了行读取和写入通用换行符;
        b.转换流主要是用来解决字符文件的编码问题,可以指定字符编码对字符文件进行读写,避免乱码问题;
        c.序列流主要是用来实现对象的序列化(将对象存储到文件中)和反序列化(从对象文件中直接读取对象信息,创建对象);
        d.打印输出流主要是用于将各种类型的数据以字符串形式输出到指定的目标例如控制台或某个文件。
回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?
会在内存中创建缓冲区,内存间的读写效率最高
2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
使用idea)读写GBK码表编写的文件会出现乱码,编码和解码的规则不一致,idea默认使用的是utf-8的码表,使用转换流中的inputstreamreader指定GDK的码表方式来读
3、序列化流中的serialVersionUID的作用
做标记
4、请根据自己的语言表述IO流的体系
(1)IO主要分为字节流、字符流以及他们的增强流;
(2)字节流包括输出流InputStream,输出流OutputStream及其他们的子类,常用的是FileOutputStream和FileInputStream这两个子类;
(3)字符流包括输入流Reader和输出流Writer及其他们子类,常用的是FileReader和FileWriter两个子类
(4)增强流包括缓冲流(字符字节及其输入输出共四类),转换流(输入和输出两种)序列流(输入输出)和打印输出流(输出);
        a.缓冲流主要是用来提高读写效率的,其内部自带缓冲区,默认为8KB,可设置,对字符的读写提供了行读取和写入通用换行符;
        b.转换流主要是用来解决字符文件的编码问题,可以指定字符编码对字符文件进行读写,避免乱码问题;
        c.序列流主要是用来实现对象的序列化(将对象存储到文件中)和反序列化(从对象文件中直接读取对象信息,创建对象);
        d.打印输出流主要是用于将各种类型的数据以字符串形式输出到指定的目标例如控制台或某个文件。
回复 使用道具 举报
1.什么是输入流?什么是输出流?

输入流是:把数据从其他设备上读取到内存中
输出流是:把数据从内存中读取到其他设备上

2.输入流读取有几种方式,输出流写出有几种方式?

输入流的读取:字节输入流,字符输入流
输入流:字节输入流,字符输出流

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

字符流是:以字符为单位,读写数据的流
自己流是:以字节为单位,读写数据的流
回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?

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

2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?

文件的储存规则和解析规则不一样的时候就会发生写入乱码
我们通过创建InputStreamReader流对象,指定从字符流到字节流的桥梁(指定规则),从而解决乱码问题

3、序列化流中的serialVersionUID的作用

序列化流中的serialVersionUID的作用是:验证序列化的对象和对应类是否版本匹配。

4、请根据自己的语言表述IO流的体系

IO流包括:字节输出流,字节输入流,字符输出流,字符输入流
字节输出缓冲流,字节输入缓冲流,字符输出缓冲流,字符输入缓冲流分别是这几个IO流的高效流

还包括正序列化:ObjectOutputStream
          反序列化:ObjectIntputStream
正序列化和反序列化可以将对象存储到文件中,也可以将文件中的对象读取出来
打印流:可以改变打印流向
回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?

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

2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?

文件的储存规则和解析规则不一样的时候就会发生写入乱码
我们通过创建InputStreamReader流对象,指定从字符流到字节流的桥梁(指定规则),从而解决乱码问题

3、序列化流中的serialVersionUID的作用

序列化流中的serialVersionUID的作用是:验证序列化的对象和对应类是否版本匹配。

4、请根据自己的语言表述IO流的体系

IO流包括:字节输出流,字节输入流,字符输出流,字符输入流
字节输出缓冲流,字节输入缓冲流,字符输出缓冲流,字符输入缓冲流分别是这几个IO流的高效流

还包括正序列化:ObjectOutputStream
          反序列化:ObjectIntputStream
正序列化和反序列化可以将对象存储到文件中,也可以将文件中的对象读取出来
打印流:可以改变打印流向
回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?
缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。

2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
按照A规则存储,同样按照A规则解析,那么就能显示正确的文本符号。反之,按照A规则存储,再按照B规则解析,就会导致乱码现象。

通过转换流InputStreamReader和OutputStreamWriter可以根据指定的编码规则读取或写出。

3、序列化流中的serialVersionUID的作用
Serializable 接口给需要序列化的类,提供了一个序列版本号。serialVersionUID 该版本号的目的在于验证序列化的对象和对应类是否版本匹配。
可以将serialVersionUID写死,防止修改对象导致抛出一InvalidClassException异常。

4、请根据自己的语言表述IO流的体系
(1)IO主要分为字节流、字符流以及他们的增强流;
(2)字节流包括输出流InputStream,输出流OutputStream及其他们的子类,常用的是FileOutputStream和FileInputStream这两个子类;
(3)字符流包括输入流Reader和输出流Writer及其他们子类,常用的是FileReader和FileWriter两个子类
(4)增强流包括缓冲流(字符字节及其输入输出共四类),转换流(输入和输出两种)序列流(输入输出)和打印输出流(输出);
        a.缓冲流主要是用来提高读写效率的,其内部自带缓冲区,默认为8KB,可设置,对字符的读写提供了行读取和写入通用换行符;
        b.转换流主要是用来解决字符文件的编码问题,可以指定字符编码对字符文件进行读写,避免乱码问题;
        c.序列流主要是用来实现对象的序列化(将对象存储到文件中)和反序列化(从对象文件中直接读取对象信息,创建对象);
        d.打印输出流主要是用于将各种类型的数据以字符串形式输出到指定的目标例如控制台或某个文件。
回复 使用道具 举报
吴元陶:1、缓冲流为什么会提高IO流读写的效率?
缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。

2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
按照A规则存储,同样按照A规则解析,那么就能显示正确的文本符号。反之,按照A规则存储,再按照B规则解析,就会导致乱码现象。

通过转换流InputStreamReader和OutputStreamWriter可以根据指定的编码规则读取或写出。

3、序列化流中的serialVersionUID的作用
Serializable 接口给需要序列化的类,提供了一个序列版本号。serialVersionUID 该版本号的目的在于验证序列化的对象和对应类是否版本匹配。
可以将serialVersionUID写死,防止修改对象导致抛出一InvalidClassException异常。

4、请根据自己的语言表述IO流的体系
(1)IO主要分为字节流、字符流以及他们的增强流;
(2)字节流包括输出流InputStream,输出流OutputStream及其他们的子类,常用的是FileOutputStream和FileInputStream这两个子类;
(3)字符流包括输入流Reader和输出流Writer及其他们子类,常用的是FileReader和FileWriter两个子类
(4)增强流包括缓冲流(字符字节及其输入输出共四类),转换流(输入和输出两种)序列流(输入输出)和打印输出流(输出);
        a.缓冲流主要是用来提高读写效率的,其内部自带缓冲区,默认为8KB,可设置,对字符的读写提供了行读取和写入通用换行符;
        b.转换流主要是用来解决字符文件的编码问题,可以指定字符编码对字符文件进行读写,避免乱码问题;
        c.序列流主要是用来实现对象的序列化(将对象存储到文件中)和反序列化(从对象文件中直接读取对象信息,创建对象);
        d.打印输出流主要是用于将各种类型的数据以字符串形式输出到指定的目标例如控制台或某个文件。
回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?
缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。

2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
按照A规则存储,同样按照A规则解析,那么就能显示正确的文本符号。反之,按照A规则存储,再按照B规则解析,就会导致乱码现象。

通过转换流InputStreamReader和OutputStreamWriter可以根据指定的编码规则读取或写出。

3、序列化流中的serialVersionUID的作用
Serializable 接口给需要序列化的类,提供了一个序列版本号。serialVersionUID 该版本号的目的在于验证序列化的对象和对应类是否版本匹配。
可以将serialVersionUID写死,防止修改对象导致抛出一InvalidClassException异常。

4、请根据自己的语言表述IO流的体系
(1)IO主要分为字节流、字符流以及他们的增强流;
(2)字节流包括输出流InputStream,输出流OutputStream及其他们的子类,常用的是FileOutputStream和FileInputStream这两个子类;
(3)字符流包括输入流Reader和输出流Writer及其他们子类,常用的是FileReader和FileWriter两个子类
(4)增强流包括缓冲流(字符字节及其输入输出共四类),转换流(输入和输出两种)序列流(输入输出)和打印输出流(输出);
        a.缓冲流主要是用来提高读写效率的,其内部自带缓冲区,默认为8KB,可设置,对字符的读写提供了行读取和写入通用换行符;
        b.转换流主要是用来解决字符文件的编码问题,可以指定字符编码对字符文件进行读写,避免乱码问题;
        c.序列流主要是用来实现对象的序列化(将对象存储到文件中)和反序列化(从对象文件中直接读取对象信息,创建对象);
        d.打印输出流主要是用于将各种类型的数据以字符串形式输出到指定的目标例如控制台或某个文件。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马