Week12

一、Java中流的分类

从流动方向上看:

        输入流:如System.in是一个InputStream类型输入流

        输出流:如System.out是一个PrintStream类型输出流

从读取类型上看:

        字节流:从InputStream和OutputStream派生出来的一系列类,以字节为基本处理单位

        字符流:从Reader和Writer派生出的系列类,以16位的Unicode码表示的字符为基本处理单位

从发生的源头看:

        节点流:直接操作目标设备对应的流(文件流、标准输入输出流)

        过滤流:继承带有关键字Filter的流,用于包装操作节点流,方便读写各种类型的数据

二、字节流InputStream和OutputStream的子类分别有哪些?与其对应的字符流有哪些?

InputStream的子类

        ByteArrayInputStream包含一个内存缓冲区,字节从内存中取出

        FileInputStream 文件流,与其对应的字符流为FileReader

        FilterInputStream 过滤流,在读写数据的同时还可以对数据进行特殊处理,与其对应的字符流为FilterReader

        ObjectInputStream用来恢复被序列化的对象

        PipedInputStream 管道输入流,读取管道内容。多和PipedOutputStream一起用于多线程通信  ,与其对应的字符流为PipedReader 

        SequenceInputStream 是多种输入流的逻辑串联,从第一个输入流读取到最后一个输入流。

 OutPutStream的子类

        ByteArrayOutputStream在字节数组和流之间搭建桥梁

        FileOutputStream 文件流,与其对应的字符流为FileWriter

        FilterOutputStream过滤字节输出流。将已存在的输出流作为其基本数据接收器,但可能直接传输数据或提供一些额外的功能。与其对应的字符流为FilterWriter

        ObjectOutputStream将对象序列化后写入指定地方

        PipedOutputStream 管道流,与其对应的字符流为PipedWriter
 

三、字节流与字符流的转化

        输入字节流转为字符流需用到InputStreamReader的构造方法

InputStreamReader ins = new InputStreamReader(System.in);
InputStreamReader ins = new InputStreamReader(new FileInputStream("test.txt"));

        输出字符流转为字节流要用到OutPutStream或PrintWriter的构造方法

OutputStreamWriter outs=new OutputStreamWriter(new FileOutputStream("test.txt"));

四、Java中的过滤流(流的装配)的作用?常用过滤流

基本输入流提供地读取方法只能用来读取字节或字符,而过滤器流能够读取整数值、双精度值或字符串,但需要一个过滤器类来包装输入流。FilterInputStream和FilterOutputStream类是所有过滤输入流和输出流的父类,它们是抽象类,本身不能生成任何实例。

其常用子类:
BufferedInputStream 和 BufferedOutputStream

DataInputStream 和 DataOutputStream

五、对象的序列化与反序列化

对象的串行化又称为序列化,是将内存中的动态对象表达成可以传输的串行式(指把内存中的对象变成二进制流的形式进行传输或者保存在文本中),而与之相反的过程则称为反串行化或者反序列化。
Serializable接口没有任何方法,Java类只有实现Serializable接口才能够被串行化。

transient 关闭敏感字段序列化,不会被自动保存到磁盘

六、Java的File类表示什么,及其作用

File类不仅指系统中的文件,也指目录,因为目录也是特殊的文件。
作用:表示一个文件对象,文件(或目录)路径名字的抽象表示。

七、Java对文件的读写提供哪些支持

FileInputStream 以字节流的形式顺序读文件。
FileReader 以字符流的形式顺序读文件。
FileOutputStream 以字节流的形式顺序写文件。
FileWriter 以字符流的形式顺序写文件。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值