🍎个人主页:亮点的博客
🍊个人信条:理想如果不向现实做一点点屈服,那么理想也将归于尘土
🍑刷题专栏:【Java】牛客网刷题
🥭刷题网站:牛客网 学习的一种有效途径就是刷题,丰富的做题经验可以加深对知识点的理解,推荐一款刷题网站,赶快点击这里注册学习吧👉你的进阶之路!
IO流要点如下:
1、各类间的继承关系
2、在Java中使用File类文件本身,可以直接使用此类完成文件的各种操作,如创建、删除等。
3、
RandomAccessFile类
可以从指定的位置开始读取信息,但是要求文件中各个数据的保存长度必须固定。
4、输入/输出流主要分为字节流(
OutputStream
、InputStream
)和字符流(Writer
、Reader
) 两种,但是在传输中以字节流操作较多,字符流在操作时使用到缓冲区,而字节流没有使用到缓冲区。
5、字节或字符流都是以抽象类的形式定义的,根据其使用的子类不同,输入或输出的位置也不同。
6、在IO包中可以使用
OutputStreamWriter
和InputStreamReader
完成字符流与字节流之间的转换操作。
7、使用
ByteArrayInputStream
和ByteArrayOutputStream
类可以对内存进行输入/输出操作。
8、在线程之间进行输入/输出通信,主要使用
PipedOutputStream
和PipedInputStream
类。
9、在IO中输出时最好使用打印流(
PrintStream
、PrintWriter
),这样可以方便地输出各种类型的数据。
10、System类提供了3个支持IO操作的常量即
out、err、in
。
System.out
:对应显示器的标准输出。System.err
:对应错误打印,一般此信息不希望被用户看到。System.in
:对应标准的键盘输入。在程序操作中,根据
setOut()
方法可以修改System.out
的输出位置,可以使用setErr()
方法修改System.err
的输出位置,也可以使用setln()
方法修改System.in
的输入位置。
11、
BufferedReader
可以直接从缓冲区中读取数据。
12、使用
Scanner
类可以方便地进行输入流操作。
13、数据操作流提供了与平台无关的数据操作,主要使用
DataOutputStream
和DatalnputStream
类。
14、使用合并流(
Sequencelnputstream
)可以将两个文件的内容进行合并。
15、如果数据量过大,则可以使用压缩流压缩数据,在Java中支持
ZIP
、JAR
和GZIP
3 种压缩格式。
16、使用回退流可以将不需要的数据回退到数据缓冲区中以待重新读取。
17、造成字符乱码的根本原因就在于程序编码与本地编码的不统一。
18、对象序列化可以将内存中的对象转化为二进制数据,但对象所在的类必须实现
Serializable
接口,一个类中的属性如果使用transient
关键字声明,则此属性的内容将不会被序列化。
19、对象的输入/输出主要使用
ObjectlnputStream
和ObjectOutputStream
两个类完成。
和我一起来刷题学习吧!传送门👉牛客网-求职|面试|学习