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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1、缓冲流为什么会提高IO流读写的效率?
答:缓冲流 在使用的时候会开辟一块内存作为内存缓冲区,默认大小为8k。
缓冲区存在的意义是减少java程序和jvm、os、文件之间的交互。另外,使用数组进行读取,可以减少文件数据的获取时间。
因为io读写的时间消耗在 1.java程序和jvm、os、文件之间的交互。2.文件储存的二进制数据的获取。


2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
答:乱码的产生是因为:编码和解码的格式不相同导致的。产生原因如:写出数据时是使用utf-8编码,而读取时使用的是GBK编码,就会出现乱码。
解决的方式就是,用文件本身的编码方式读取文件,或者使用读取文件的程序默认的编码方法写出文件。可以使用转换流OutputStreamWriter和InputStreamReader在读取和写出时自定义编码表。


3、序列化流中的serialVersionUID的作用
答:serialVersionUID作用是检测。
       检测序列化的对象和其对应类是否版本匹配。如果不匹配那么反序列化会失败。


4、请根据自己的语言表述IO流的体系
答: IO流体现,就是读取、写出的操作的通道。
按照流向和格局分为 字节输出\输入流 字符输出\输入流。 四大类。
在文件读写使用过程中为了提高读写速度,使用缓冲流。
在文件读写使用过程中为了避免编码和解码的不同导致乱码,使用转换流。方便不同编码格式的相互转换。
还可以把任意对象进行序列化和反序列化操作,把对象和二进制数之间进行转化。



回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?
在创建缓冲流的时候,会创建一个内置的默认大小(8196)的缓冲区数组,会将读取的字节都存储到缓冲区中再进行传输,写入也是通过缓冲区将缓冲区中的字节写入到文件中。通过缓冲区读写,减少java程序和文件的交互次数,从而提高读写的效率。

2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
在读写过程中,如果编码格式和解码格式操作的字符集不一致就会造成乱码。可以通过转换流解决,指定对应的编码格式和解码格式,让们格式相同,就能够解决乱码问题。

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

可以固定序列号,让它不会因.class修改发生序列化变化,反序列化时抛出InvalidClassException异常。

4、请根据自己的语言表述IO流的体系
(1)IO流按照流动的方向,以内存为基准,分为输入流和输出流;格局数据的类型分为字节流和字符流。
(2).IO流包括基本字节流,字符流(从字节流衍生而来,由于字节在读取中文时,只能读取中文字符的一部分,产生了字符流),在这两个流的基础上加强的有缓冲流(将两个流进行增强,提高读写的效率),转换流(由于在编码格式和解码格式不一致,出现乱码,需要指定对应编码的字符集和解码字符集,解决编码和解码格式不一致问题),序列化流(将对象封装再进行序列化成字节进行保存,反序列化时将字节转为对象展示,可以防止文本被修改问题)及打印流(为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式),根据具体的应用场景和需求来选择与之对应的流对象进行操作。
回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?
缓冲流在创建流对象时,会增加一个默认大小8192的缓冲区,可以通过这个缓冲区进行读写,减少了Java程序、JVM和OS系统的交互次数,从而提高IO流读写的效率   

2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
当写入的格式和文件的格式不符时;编码的格式和解码的格式不一致;可以使用转换流中的OutputStreamWriter类,在创造对象时通过构造方法指定对应的编码表,再使用write()方法进行写入

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

4、请根据自己的语言表述IO流的体系
IO流可以看作数据的流动,按方向可以分为输出流(把数据从内存中写入到硬盘中)和输入流(从硬盘中读取数据到内存中);按数据格局可以分为字节流(以字节为单位)、字符流(以字符为单位,适用于文本),字节流分为字节输入/输出流,字符流分为字符输入/输出流;
在此基础上增加了缓冲流,分为字节缓冲流和字符缓冲流(创建流对象时,会增加一个默认大小8192的缓冲区,可以通过这个缓冲区进行读写,减少了Java程序、JVM和OS系统的交互次数,从而提高IO流读写的效率 ),其中字符缓冲流特有方法BufferedReader: public String readLine() : 读一行文字。 BufferedWriter: public void newLine() : 换行;
转换流我们可以自定义编码格式和解码格式解决乱码 问题,转换流分为InputStreamReader和OutputStreamWriter;
序列化分为序列化流ObjectOutputStream:将对象转为二进制存储,反序列化流ObjectInputStream:将二进制转为对象展示;
打印流PrintStream,调用 print()方法和 println()方法,能够方便地打印各种数据类型的值,是一种便捷的输出方式。   
回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?
不使用缓冲流是一个一个读写,使用缓冲流后,可以将缓冲区看成一个数组,不用再挨个调用,提高读写效率。
2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
编码不一致时会发生乱码问题,在读取文件前采用与之对应的编码表解析文件从而不会产生乱码。
3、序列化流中的serialVersionUID的作用
用于验证序列化对象发送和接受的版本号是否相同
4、请根据自己的语言表述IO流的体系
可以分为字节流:Inputstream输入流;Outputstream输出流
字符流:Reader输入流;Writer输出流
其中又分出了几个子类,如缓冲流,转换流,打印流,序列化流等。

回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?
因为在缓冲流中有一个缓冲区。缓冲区的大小是8*1024个字节。
2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
在码表不同的时候会出现乱码,码表的格式不同就会乱码。
可以要编码和解码来解决,把看不懂代码解码看懂代码,把看懂的代码编码成看不懂了。

3、序列化流中的serialVersionUID的作用
保证序列化的值是否匹配。

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

IO流有
IO流按照流向份输入流输出流,按照格局份有字节流和字符流
在以上4种流的基础上有 缓冲流 序列化流 转换流 打印流
缓冲流的BufferedReader有特有的方法readLine()一次读一行。
和BufferedWritery有特有的方法newLine() 一次写一行。缓冲流的作用是加强读写速度。
转换流是让编码和解码时不会乱码。
打印流有自己特有的方法,print()和println()方法。
回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?

因为缓冲流在内存中创建了一个缓冲区来储存数据,减少了让读写数据的操作次数,从而降低了文件读写的时间。

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

发生乱码的原因都是编解码的格式不同,当编码格式和解码格式不一致的时候,乱码现象就产生了。我们使用转换流来编码指定格式和解码指定格式的文件。

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

用来自定义对象的序列化序列号,来防止序列化后对象有修改后,发生反序列化失败现象。

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

IO流体系大致分为:

最基本的字节输入/输出流、字符输入/输出流、缓冲输入/输出流、转换输入/输出流、序列化/反序列化流、网络输入/输出流。


+++++++++++++黄成成                                    
回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?
答:缓冲就相当于一个卡车装载着一推货运输,先把字符或字节先不传输,把它们放入缓冲区(8192),放完在一起读取或写入,比之前一个一个传输运行要快
2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?

答:因为编辑时和解码时格式不一样发生乱码问题;用转换流:字节流+编码集或者字符流:字节流+固定的编码集(UTF-8)
3、序列化流中的serialVersionUID的作用
答:serialVersionUID用于验证序列化的对象和对应类是否版本匹配。
4、请根据自己的语言表述IO流的体系
答:                              io流
         本地io流                                        缓冲io流
字节:输出流(FileOutputStream(写) ;  字节缓冲输出流(BufferedOutputStream )
字节:输入流(FileInputStream)(读) ;  字节缓冲输入流( BufferedInputStream )
字符:输出流(FileWriter)   (写)     ;    字符缓冲输出流(  BufferedWriter)
字符:输入流(FileReader) (读) ;    字符缓冲输入流(BufferedReader )
回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?
答:通常我们一次读取一个字节数组的话这样会来回多次存取,而缓冲流相当于一个容器,它里面存放的东西就是我们多次取回来的字节数组,等取完了之后,缓冲流会一次性传输,增加效率
2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
答:在读写过程中,写的编码和读的编码不一致就会发生乱码问题,比如在win下是默认GBK编码的,idea是UTF-8编码,这个时候用IDEA去读取在win下创建的文件就会发生乱码,解决方法:只要读取的时候用GBK编码去读取就可以解决乱码问题。
3、序列化流中的serialVersionUID的作用
答:序列化流就是我们把对象以流的方式写入到文件中,ObjectIputStream读 和ObjectOutStream写要使用序列化流的话 在类中数据不能加私有和静态 瞬态关键字,否则将无法序列化该属性,序列化流中的serialVersionUID的作用:保证类在序列化后执行反序列化的时候类的完整性。若类在序列化后有过修改则反序列化会失败。
4、请根据自己的语言表述IO流的体系
答:IO流 按类型分 有两类 字节流,字符流,按流向分,有两类 输入流,输出流,
每种流 又细分各种功能不同的流, 字节 字符 都有输入输出流。以及其他的一些流如 缓冲流,序列化流,合并流,随机访问流,内存流 ......




回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马