初级 Java I/O 综述(一)

Java IO 综述

看论坛里面有人问有关Java IO方面的东西,小弟不才。写些东西,希望给大家一些启发,也算是抛砖引玉吧。^_^

JavaIO包支持Java的基本输入/输出(I/O)系统,也包括文件的输入和输出。JavaIO部分,我打算分两部分阐述,首先我们讨论IO子系统的基础,然后再讨论深入的部分。

如果你有Java编码的经验,你会发现这些程序里面并不是用到很多的IO子系统。事实上,除了Print()和Println(),基本上没有用到其他的IO方法。原因很简单:多数实际的Java应用程序并不是基于文本、控制台的,而是基于图形化的Appliaction,这些程序依赖于用户的交互的Java AWTSwing类。同时,Java对控制台IO程序的支持并不是很好,甚至再简单的范例中都有些难以使用,但基于文本、控制台的Java 程序也需要我们来了解。

Java IO通过Stream(流)来实现。关于流,你可以理解为是一种“数据的管道”。管道中流动的东西可以是基于字节,也可以是基于字符的等。就好像管道里面可以流动水,也可以流动石油一样。而对应于流还有一个概念:输入、输出设备。这些设备可以是磁盘文件、键盘(输入设备)、显示器(输出设备)、打印机(输出设备)、网络套接字等等。

 

下面,我们就来了解“流”。

Java中定义了两种类型的流:字节型,和字符型。

字节流:处理字节的输入和输出。包括读写二进制数据等方面的内容。

字符流:处理字符的输入和输出。他采用的是Unicode编码,可以实现国际化。使用字符流的另外一个好处就是:字符流比字节流更有效率。

 

:::::::::::::::::::::::::::::::字节流:::::::::::::::::::::::::::::::::::::

字节流包含两个顶层抽象类:InputStreamOutputStream。如下图所示。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

               图1InputStream抽象类

              

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                图2OutpurStream抽象类

 

     从上面的两个抓图(抓图自J2SE 142 DOC)中,我们可以看出一下几点:

      1:字节流的两个顶层类是抽象类,分别是:InputStreamOutputStream

      2:每个抽象类都有子类来实现具体的功能,处理不同的设备的输入和输出。

 

下面简单介绍字节流的几个常用子类:::

字节流类

功能简单介绍

DataInputStream

包含了读取Java标准数据类型的输入流

DataOutputStream

包含了写Java标准数据类型的输出流

ByteArrayInputStream

从字节数组读取的输入流

ByteArrayOutputStream

写入字节数组的输出流

FileInputStream

从文件读入的输入流

FileOutputStream

写入文件的输出流

PrintStream

包含最常见的Print()和Println()的输出流

PushbackInputStream

返回一个字节到输入流,主要用于编译器的实现

PipedInputStream

输出管道

PipedOutputStream

输入管道

SequenceInputStream

n个输入流联合起来,一个接一个按一定顺序读取

RandomAccessFile

随机访问文件

BufferInputStream

缓冲输入流

BufferOutputStream

缓冲输出流

FilterInputStream

实现了InputStream Interface

FilterOutputStream

实现了OutputStream Interface

InputStream

抽象类,描述流的输入

OutputStream

抽象类,描述流的输入

 

      抽象类InputStreamOutpurStream定义了实用的方法,其中最主要的是read()和

write()。这两个方法在InputStreamOutputStream中声明为抽象方法,由子流类overwrite实现。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 尊敬的HR: 您好,我叫XXX,是一位有着两年java开发经验的初级java开发工程师。我自学能力强,能够迅速掌握新技术,有着良好的团队合作精神,能够与团队成员配合完成复杂的项目。 我有着深厚的java语言基础,能够熟练使用java语言,熟悉java web开发,能够熟练使用Spring,Hibernate,MyBatis,Struts等框架。我拥有精湛的编程技巧,能够编写高质量的代码,并能够有效地解决问。 我拥有清晰的思路,能够快速地完成工作,并能够灵活地应对变化。我有着良好的沟通能力,能够很好地与团队成员合作,提高团队效率。 最后,我希望能够加入贵公司,为公司做出贡献,成就更好的未来。 期待着您的回复! 谨上! XXX ### 回答2: 尊敬的招聘经理: 您好!我是一名对Java开发充满热情并且具备初级开发经验的应聘者。我写信给您是为了表达对贵公司职位的浓厚兴趣,并希望能有机会加入贵公司的开发团队。 在我的学习和实践中,我掌握了Java编程语言的基本知识和技能。通过参与项目,我熟悉了软件开发的全过程,包括需求分析、设计、开发、测试和部署。我熟悉使用Eclipse等开发工具,并能独立完成任务和解决问。此外,我熟悉使用SQL语句进行数据库操作,并具备良好的数据库设计能力。 在之前的项目中,我负责开发和维护了一个电商平台的后台管理系统。通过该项目,我学会了团队协作,丰富了自己的编程经验,并不断提升了自己的解决问的能力。我也举办过一个小型Java课程,帮助学生学习和掌握Java编程的基础。 我的学习能力和适应能力都很强,对新技术有强烈的求知欲。我相信,在贵公司这样的环境中,我能够持续学习和进步,并为公司的发展贡献力量。我具备良好的沟通能力和团队合作精神,能够与不同专业背景的人合作,并共同完成项目。 非常感谢您花时间阅读我的求职信。如果您认为我是您的理想人选,我非常期待有机会与您进一步交流。您可以通过电话或邮件与我联系,随时安排面试。再次感谢您给予我的机会,期待能够加入贵公司,共同实现共赢。 祝好! 此致 敬礼 XXX

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值