首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网站建设 > 服务器相关 > Java初学者入门——IO包的学习引导文章
【标  题】:Java初学者入门——IO包的学习引导文章
【关键字】:Java,IO
【来  源】:http://blog.chinaunix.net/article.php?articleId=49386&blogId=1655

Java初学者入门——IO包的学习引导文章

什么是IO

IO(Input/Output)是计算机输出/输出的接口。Java的核心库java.io提供了全面的IO接口,包括:文件读写,标准设备输出等等。 Java中IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。此外,Java也对块传输提供支持,在核心库 java.nio中采用的便是块IO。关于NIO我们在后面还有专门的讨论。

流IO的好处是简单易用,缺点是效率较低。块IO效率很高,但编程比较复杂

什么是IO

IO(Input/Output)是计算机输出/输出的接口。Java的核心库java.io提供了全面的IO接口,包括:文件读写,标准设备输出等等。 Java中IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。此外,Java也对块传输提供支持,在核心库 java.nio中采用的便是块IO。关于NIO我们在后面还有专门的讨论。

流IO的好处是简单易用,缺点是效率较低。块IO效率很高,但编程比较复杂。

Java IO模型

Java的IO模型设计非常优秀,它使用Decorator模式,按功能划分Stream,您可以动态装配这些Stream,以便获得您需要的功能。例 如,您需要一个具有缓冲的文件输入流,则应当组合使用FileInputStream和BufferedInputStream。

Java的IO体系分Input/Output和Reader/Writer两类,区别在于Reader/Writer在读写文本时能自动转换内码。基本上,所有的IO类都是配对的,即有XxxInput就有一个对应的XxxOutput。

Java IO教程

如果您对Decorator模式非常了解,就能轻易地看出Java的IO类结构:根接口是InputStream/OutputStream,充当数据源 的IO类有FileInputStream/FileOutputStream, ByteArrayInputStream/ByteArrayOutputStream等,充当装饰功能的IO类有 BufferedInputStream/BufferedOutputStream, DataInputStream/DataOutputStream等,它们都是继承装饰接口 FilterInputStream/FilterOutputStream。使用IO时,首先创建一个数据源IO,然后根据需要的功能创建装饰类IO, 其构造函数的参数为已创建的数据源IO。我们以创建一个具有缓冲的文件输入流为例,假定需要从磁盘读取文件“C:\log.txt”:

// 创建一个FileInputStream:

FileInputStream fileInput = new FileInputStream("C:\log.txt");

// 创建一个BufferedInputStream:

BufferedInputStream bufferedInput = new BufferedInputStream(fileInput);

// 现在得到的bufferedInput即是具有缓冲的文件输入流

或者进一步简写如下:

InputStream input = new BufferedInputStream(

ew FileInputStream("C:\log.txt"));

// 现在得到的input即是具有缓冲的文件输入流


在您对Java的IO有了总体了解后,我们推荐您看看教程Introduction to Java I/O和I/O: Reading and Writing。

Java NIO编程

NIO提供了对块IO的支持,使用块IO的好处是效率更高,而且Java的NIO将直接调用操作系统提供的许多高级IO接口,支持块传 输,读写锁定,异步IO等功能,效率非常高。NIO的编程模型是通道和缓冲区,推荐您阅读Getting started with new I/O(中文)。
静态、共享和动态库的使用:【上一篇】
文件格式大全:【下一篇】
【相关文章】
  • 给JAVA设计开发新手的一些建议和意见
  • 使用hbm2java的一个问题
  • ClassCastException 错误解析
  • 在应用中加入全文检索功能——基于Java的全文索引引擎Lucene简介
  • [JavaScript]几种常用的表单输入判断
  • Grub on a mirrored boot partition
  • Lotus Domino 6 Administration Basics
  • 使用FreeBSD5.2打造Java Serv環境
  • 如何在FREEBSD上玩JAVA2
  • 安装JAVA环境
  • 【随机文章】
  • 用PHP发送MIME邮件(二)
  • FreeBSD4.8 IPFW How to!
  • 通过WEB服务器应用程序攻击系统
  • HOW TO:使用 System.IO 和 Visual C# .NET 读取文本文件
  • 笑傲江湖版三层交换技术
  • Windows程序内部运行机制
  • 后弦古玩的歌。。试听试听吧[西厢][只爱火星人][东爱]……
  • 用Asp隐藏文件路径,实现防盗链
  • 经验分享:如何迅速成为Java高手
  • 小脚本:用shell摹拟grep -i
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.