Java SE应用部分30Java IO操作04.docx

上传人:b****6 文档编号:16145927 上传时间:2023-07-10 格式:DOCX 页数:11 大小:897.04KB
下载 相关 举报
Java SE应用部分30Java IO操作04.docx_第1页
第1页 / 共11页
Java SE应用部分30Java IO操作04.docx_第2页
第2页 / 共11页
Java SE应用部分30Java IO操作04.docx_第3页
第3页 / 共11页
Java SE应用部分30Java IO操作04.docx_第4页
第4页 / 共11页
Java SE应用部分30Java IO操作04.docx_第5页
第5页 / 共11页
Java SE应用部分30Java IO操作04.docx_第6页
第6页 / 共11页
Java SE应用部分30Java IO操作04.docx_第7页
第7页 / 共11页
Java SE应用部分30Java IO操作04.docx_第8页
第8页 / 共11页
Java SE应用部分30Java IO操作04.docx_第9页
第9页 / 共11页
Java SE应用部分30Java IO操作04.docx_第10页
第10页 / 共11页
Java SE应用部分30Java IO操作04.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Java SE应用部分30Java IO操作04.docx

《Java SE应用部分30Java IO操作04.docx》由会员分享,可在线阅读,更多相关《Java SE应用部分30Java IO操作04.docx(11页珍藏版)》请在冰点文库上搜索。

Java SE应用部分30Java IO操作04.docx

JavaSE应用部分30JavaIO操作04

JavaSE应用部分-30.JavaIO操作(04)

 

上季内容回顾:

System.out-->PrintStream的一个实例化对象,本身具备了向屏幕上打印的功能,之后又讲解了可以使用OutputStream类向屏幕上进行输出的实例。

本季目标:

1、System.in

2、缓冲流

3、对象序列化

System.in对应的是键盘的输入

publicstaticfinalInputStreamin

只是现在不是像之前那样是从文件中读了,而是从键盘上读数据了。

看下效果:

以上的程序虽然可以输入内容,但是会存在一个问题:

首先程序开辟了一段空间,如果现在假设输入的内容大于开辟的空间,那会如何呢?

看下效果:

如果要是长度大于设置好的长度,则肯定有内容无法读取进来,最好的方法就是给不设置长度,如果有内容就继续读。

看下效果:

采用判断是否读到底的方式完成,确实没有长度的限制了,但是也存在了另外一个问题如果输入中文,则肯定出现乱码?

最好的解决方法是设置一个缓冲区,所有的内容放到缓冲区中一次性读出来。

此缓冲区最好是为字符缓冲区——BufferedReader

publicBufferedReader(Readerin)

此处必须接收一个Reader的对象,但是System.in实际上是InputStream类的对象

字节流与字符流的转换

Reader和Writer本身使用到了缓冲:

Writer-->OutputStreamWriter-->FileWriter

结论:

·在物理上存放的肯定永远是字节流

·读到程序之中才会形成字符流

得出完整的输入数据的代码形式:

现在看下最终效果:

以上为标准的格式,我们现在使用此种格式完成一个功能,输入两个整数之后计算两个数字的相加结果。

字符集

GBK:

是包含了简体中文和繁体中文的字库

GB2312:

是只包含了简体中文的字库

ISO8859-1:

是一个国际的通用编码

在系统中都有一个默认的编码方式。

如果知道当前系统的默认编码呢?

接着看下面哈~

默认的编码方式就是GBK,那么问,如果现在系统的编码为GBK,而我使用ISO进行编码,能正确解释出来吗?

字符乱码怎么解决——跟系统设置的编码一致就OK了。

SequenceInputStream类

SequenceInputStream用于文件合并

看下合并后的效果:

对象序列化

实际上使用的是两个类:

·ObjectOutputStream

·ObjectInputStream

Serializable接口的作用:

只是一个标识接口,表示你这个类的对象允许被序列化

ObjectOutputStream类的构造方法,接收一个OutputStream类的实例化对象,以表示到底向那里保存。

publicfinalvoidwriteObject(Objectobj)throwsIOException

ObjectInputStream类的构造方法

publicfinalObjectreadObject()throwsIOException,ClassNotFoundException

下面进行反序列化(从文件中恢复对象)

看下效果:

从文件中读取对象

对象序列化实际上更准确的来说指的是对象可以变为字节流。

transient关键字

当不希望类中的某个字段被序列化的时候,应用transient表示这个字段

看下效果:

总结

OutputStream:

字节的输出流类

|-FileOutputStream

|-ObjectOutputStream

|-ByteArrayOutputStream

|-PipedOutputStream

|-PrintStream

InputStream:

字节的输入流类

|-FileInputStream

|-ObjectInputStream

|-ByteArrayInputStream

|-PipedInputStream

Reader:

字符流的输入类

|-InputStreamReader

|-FileReader

|-BufferedReader

Writer:

字符流的输出类

|-OutputStreamWriter

|-FileWriter

|-PrintWirter

File类:

Serializable接口

#######################################################

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2