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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1、缓冲流为什么会提高IO流读写的效率?
2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
3、序列化流中的serialVersionUID的作用
4、请根据自己的语言表述IO流的体系

63 个回复

正序浏览
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流读写的效率?
缓冲流在内存中创建了一个默认为8192长度的缓冲区数组, 当要写入的数据的字节数组长度不足8192时会先把数据复制到缓冲区数组中,
稍后再从缓冲区数组中写入硬盘中, 在内存中复制数据比不断从内存中复制数据到硬盘中快很多; 但当要写入的数据字节数组长度大于
8192时, 就需要扩大缓冲区数组, 否则将不会有提高读写效率的效果.

2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
当文本文件的字符集与ideal默认的字符集(utf8)不同时, 会产生乱码问题,;
产生原因是文本的解码方式与其编码方式不匹配, 无法正确解码;
解决方式:使用与文本文件字符集对应的字符集来解码

3、序列化流中的serialVersionUID的作用
在将对象序列化时, jdk会为对象的.class文件生成一个序列版本号(serialVersionUID), 用于识别.class文件与序列化对象, 当两者不匹配时将会
产生ClassNotFoundException异常, 反序列化失败.
解决方案: 通过 static final long serialVersion = 序列号, 手动设置一个UID, 防止序列化对象后又修改.class文件导致的UID不匹配

4、请根据自己的语言表述IO流的体系
输出流:                        输入流:
FileOutputStream                FileInputStream                        普通字节流
BufferedOutputStream        BufferedInputStream                缓冲流(高效字节流)                默认为8192长度的缓冲区数组
FileWriter                        FileReader                                普通字符流
BufferedWriter                BufferedReader                        缓冲流(高效字符流)                newline()和readline()
OutputStreamWriter        InputStreamReader                        转换流                                字符流+可指定编码       
ObjectOutputStream        ObjectInputstream                        序列化流                                对象与文件的互相转换
PrintStream                                                                        打印流
回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?
缓冲区存在内存中,内存读写数据的时候,与内存之间的读写最快
2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
在IDEA中,使用 FileReader 读取项目中的文本文件。由于IDEA的设置,都是默认的 UTF-8 编码,所以没有任何
问题。但是,当读取Windows系统中创建的文本文件时,由于Windows系统的默认是GBK编码,就会出现乱码。
按照A规则存储,同样按照A规则解析,那么就能显示正确的文本符号。反之,按照A规则存储,再按照B规则解析,就会导致乱码现象。
通过转换流转换文件编码
转换流 java.io.InputStreamReader ,是Reader的子类,是从字节流到字符流的桥梁。它读取字节,并使用指定
的字符集将其解码为字符。它的字符集可以由名称指定,也可以接受平台的默认字符集。
转换流 java.io.OutputStreamWriter ,是Writer的子类,是从字符流到字节流的桥梁。使用指定的字符集将字符
编码为字节。它的字符集可以由名称指定,也可以接受平台的默认字符集。

3、序列化流中的serialVersionUID的作用
Serializable 接口给需要序列化的类,提供了一个序列版本号。 serialVersionUID 该版本号的目的在于验证序
列化的对象和对应类是否版本匹配。
4、请根据自己的语言表述IO流的体系
四个基本类:InputStream OutputStream Reader Writer类 可以按照数据流向划分,也可以按照数据类型划分.
一切皆为字节
字节流
java.io.OutputStream 抽象类是表示字节输出流的所有类的超类,将指定的字节信息写出到目的地。它定义了字
节输出流的基本共性功能方法。
    public void close() :关闭此输出流并释放与此流相关联的任何系统资源。
    public void flush() :刷新此输出流并强制任何缓冲的输出字节被写出。
    public void write(byte[] b) :将 b.length字节从指定的字节数组写入此输出流。
    public void write(byte[] b, int off, int len) :从指定的字节数组写入 len字节,从偏移量 off开始输出到此输出流。
    public abstract void write(int b) :将指定的字节输出流。

java.io.InputStream 抽象类是表示字节输入流的所有类的超类,可以读取字节信息到内存中。它定义了字节输入
流的基本共性功能方法。
    public void close() :关闭此输入流并释放与此流相关联的任何系统资源。
    public abstract int read() : 从输入流读取数据的下一个字节。
    public int read(byte[] b) : 从输入流中读取一些字节数,并将它们存储到字节数组 b中 。
java.io.Reader 抽象类是表示用于读取字符流的所有类的超类,可以读取字符信息到内存中。它定义了字符输入流的基本共性功能方法。
    public void close() :关闭此流并释放与此流相关联的任何系统资源。
    public int read() : 从输入流读取一个字符。
    public int read(char[] cbuf) : 从输入流中读取一些字符,并将它们存储到字符数组 cbuf中 。
java.io.Writer 抽象类是表示用于写出字符流的所有类的超类,将指定的字符信息写出到目的地。它定义了字节输出流的基本共性功能方法。
     void write(int c) 写入单个字符。
     void write(char[] cbuf) 写入字符数组。
     abstract void write(char[] cbuf, int off, int len) 写入字符数组的某一部分,off数组的开始索引,len写的字符个数。
     void write(String str) 写入字符串。
     void write(String str, int off, int len) 写入字符串的某一部分,off字符串的开始索引,len写的字符个数。
     void flush() 刷新该流的缓冲。
     void close() 关闭此流,但要先刷新它。
缓冲流,也叫高效流,是对4个基本的 FileXxx 流的增强,所以也是4个流,按照数据类型分类:
字节缓冲流: BufferedInputStream , BufferedOutputStream
字符缓冲流: BufferedReader , BufferedWriter
缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO
次数,从而提高读写的效率。
转换流
转换流 java.io.InputStreamReader ,是Reader的子类,是从字节流到字符流的桥梁。它读取字节,并使用指定
的字符集将其解码为字符。它的字符集可以由名称指定,也可以接受平台的默认字符集。
转换流 java.io.OutputStreamWriter ,是Writer的子类,是从字符流到字节流的桥梁。使用指定的字符集将字符
编码为字节。它的字符集可以由名称指定,也可以接受平台的默认字符集。
序列化
java.io.ObjectOutputStream 类,将Java对象的原始数据类型写出到文件,实现对象的持久存储。
ObjectInputStream反序列化流,将之前使用ObjectOutputStream序列化的原始数据恢复为对象。
打印流
平时我们在控制台打印输出,是调用 print 方法和 println 方法完成的,这两个方法都来自于java.io.PrintStream 类,该类能够方便地打印各种数据类型的值,是一种便捷的输出方式
回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?
     缓冲流的基本原理,实在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,
    减少系统IO次数,从而提高读写的效率。
2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
     在IDEA中,使用 FileReader 读取项目中的文本文件。由于IDEA的设置,都是默认的 UTF-8 编码,
所以没有任何 问题。但是,当读取Windows系统中创建的文本文件时,由于Windows系统的默认是GBK编码,就会出现乱码。
     InputStreamReader类
转换流 java.io.InputStreamReader ,是Reader的子类,是从字节流到字符流的桥梁。它读取字节,并使用指定 的字符集将其解码为字符。
它的字符集可以由名称指定,也可以接受平台的默认字符集。
OutputStreamWriter类
转换流 java.io.OutputStreamWriter ,是Writer的子类,是从字符流到字节流的桥梁。使用指定的字符集将字符 编码为字节。
它的字符集可以由名称指定,也可以接受平台的默认字符集。
3、序列化流中的serialVersionUID的作用
目的在于验证序 列化的对象和对应类是否版本匹配。
4、请根据自己的语言表述IO流(
(1)IO主要分为字节流、字符流以及他们的增强流;
(2)字节流包括输出流InputStream,输出流OutputStream及其他们的子类,常用的是FileOutputStream和FileInputStream这两个子类;
(3)字符流包括输入流Reader和输出流Writer及其他们子类,常用的是FileReader和FileWriter两个子类
(4)增强流包括缓冲流(字符字节及其输入输出共四类),转换流(输入和输出两种)序列流(输入输出)和打印输出流(输出);
        a.缓冲流主要是用来提高读写效率的,其内部自带缓冲区,默认为8KB,可设置,对字符的读写提供了行读取和写入通用换行符;
        b.转换流主要是用来解决字符文件的编码问题,可以指定字符编码对字符文件进行读写,避免乱码问题;
        c.序列流主要是用来实现对象的序列化(将对象存储到文件中)和反序列化(从对象文件中直接读取对象信息,创建对象);
        d.打印输出流主要是用于将各种类型的数据以字符串形式输出到指定的目标例如控制台或某个文件。
回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?
     缓冲流的基本原理,实在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,
    减少系统IO次数,从而提高读写的效率。
2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
     在IDEA中,使用 FileReader 读取项目中的文本文件。由于IDEA的设置,都是默认的 UTF-8 编码,
所以没有任何 问题。但是,当读取Windows系统中创建的文本文件时,由于Windows系统的默认是GBK编码,就会出现乱码。
     InputStreamReader类
转换流 java.io.InputStreamReader ,是Reader的子类,是从字节流到字符流的桥梁。它读取字节,并使用指定 的字符集将其解码为字符。
它的字符集可以由名称指定,也可以接受平台的默认字符集。
OutputStreamWriter类
转换流 java.io.OutputStreamWriter ,是Writer的子类,是从字符流到字节流的桥梁。使用指定的字符集将字符 编码为字节。
它的字符集可以由名称指定,也可以接受平台的默认字符集。
3、序列化流中的serialVersionUID的作用
目的在于验证序 列化的对象和对应类是否版本匹配。
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.打印输出流主要是用于将各种类型的数据以字符串形式输出到指定的目标例如控制台或某个文件。
回复 使用道具 举报
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、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?

文件的储存规则和解析规则不一样的时候就会发生写入乱码
我们通过创建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.什么是输入流?什么是输出流?

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

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

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

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

字符流是:以字符为单位,读写数据的流
自己流是:以字节为单位,读写数据的流
回复 使用道具 举报
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、缓冲流为什么会提高IO流读写的效率?
答:
缓冲流在创建流对象的时候,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,以此来提高读写效率。
2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
答:
由于编码表的不同,当读取的时候使用的编码表与写入的时候使用的编码表不同的时候,会发生乱码问题,解决方法就是让读取的编码表跟写入的编码表相同,就不会出现乱码的情况。
3、序列化流中的serialVersionUID的作用
答:
作用在于固定序列号,让它不会因为.class修改发生序列变化,当版本发生变化时,反序列化会抛出InvalidClassException异常
4、请根据自己的语言表述IO流的体系
答;
IO流体系可按照最小单位分为字符流、字节流,根据流向可分为输入流和输出流
在这四类基础流之上还有提高数据吞吐能力的缓冲流、解决编解码乱码问题的转换流,以及序列化流,序列化流的作用是将对象信息永
回复 使用道具 举报
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流读写的效率?   
因为缓冲流有一个缓冲区,这个缓冲区一次性存储多次要操作的数据,减少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流读写的效率?
因为缓冲流有缓冲区,可以减少java程序和jvm以及os的交互次数,从而提高了效率。

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

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

4、请根据自己的语言表述IO流的体系
IO指的是Input/Output,IO流:输入输出流。 我们称为数据流。
在Java程序中,对于数据的输入 / 输出操作都是以流的方式进行的;
按流向分:输入流和输出流;
按格局分:字节流个字符流。
回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?
答:在创建缓冲流对象的时候会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读书效率
2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
答:用和文件不符合的编码的去读取就会乱码,可以使用 InputStreamReader来指定编码来打印,或者使用outputStreamWriter对文件进行重新指定编码
3、序列化流中的serialVersionUID的作用
答:解决该类的序列版本号与从流中读取的类描述符的版本号不匹配
4、请根据自己的语言表述IO流的体系
答;IO流是用来处理设备之间的数据传输
    按流向分为:输出流和输入流
    操作数据分为:字节流和字符流
    java对数据的操作是通过流
回复 使用道具 举报
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流读写过程中,会通过缓冲区进行数据的统一读写,降低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流读写的效率?
在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。

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

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

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