`
youfengkai
  • 浏览: 25837 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java I/O 基本类库

阅读更多
I/O类库通常使用“流stream”这个抽象概念,它代表任何有能力产生数据的数据源对象或者是有能力接收数据的接收端对象。“流”屏蔽了实际的I/O设备中处理数据的细节。
BufferedReader in = new BufferedReader(
new FileReader("IOStreamDemo.java"));
BufferedReader stdin = new BufferedReader(
new InputStreamReader(System.in));// java.io.BufferedReader(java.io.Reader)
//而System.in是一个InputStream,因此用InputStreamReader进行转换(适配器模式)

1. 要想打开一个文件用于字符输入,我们可以使用以String或File对象作为文件名的FileReader。为了提高速度,我们希望对那个文件进行缓冲,那么我们将作为结果的引用传给一个BufferedReader构造器。(BufferedReader也提供readLine()方法,所以这是我们的最终对象和进行读取的接口)
BufferedReader in = new BufferedReader(new FileReader("IOStreamDemo.java"));
String s, s2 = new String();
while ((s = in.readLine()) != null)
           s2 += s + "\n";
in.close();

1.2 用System.in读取来自控制台的输入。System.in 是一个InputStream, 而BufferedReader需要的是Reader参数,因此引入InputStreamReader来进行转换(适配器模式)
BufferedReader stdin = new BufferedReader(new InputStreamReader(
System.in));
System.out.println("Enter a line");
System.out.println(stdin.readLine());
2. 从内存读入。用字符串创建一个StringReader。
// 2. Input from memory
StringReader in2 = new StringReader(s2);
int c;
while((c = in2.read()) != -1)
System.out.print((char)c);
3. 格式化的内存输入
如果要读取格式化数据(JDK5.0 Documentation: read primitive Java data types),我们要用到DataInputStream, 它是一个面向字节的I/O类
DataInputStream in3 = new DataInputStream(new ByteArrayInputStream(s2.getBytes()));
while(true)
System.out.print((char)in3.readByte());
4. 文件输出
首先创建一个与指定文件连接的FileWriter.通常会用BufferedWriter将其包装起来用以缓冲输出。然后为了格式化把它转换成PrintWriter.
BufferedReader in4 = new BufferedReader(new StringReader(s2));
PrintWriter out1 = new PrintWriter(new BufferedWriter(new FileWriter("D:\\IODemo.txt")));
int lineCount = 1;
while(((s = in4.readLine()) != null))
out1.println(lineCount++ + ": " + s);
out1.close();
为了序列化一个对象,首先要创建某些OutputSteam对象,然后将其封装在一个ObjectOutputStream对象内。这时,只需调用writeObject()即可将对象序列化,并将其发送给OutputStream。要将一个序列重组为一个对象,需要将一个InputStream封装在ObjectInputStream内,然后调用readObject()。
分享到:
评论

相关推荐

    Java I/O学习笔记: 磁盘操作 字节操作 字符操作 对象操作 网络操作 NIO & AIO Java I/O

    Java I/O学习笔记: 磁盘操作 字节操作 字符操作 对象操作 网络操作 NIO & AIO Java I/O Java是一种面向对象的编程语言,由Sun Microsystems于1995年推出。它是一种跨平台的语言,意味着可以在不同的操作系统上运行...

    使用Java实现一个简单的文件管理系统.txt

    这段代码实现了一个简单的文件管理系统,其中使用了Java的I/O类库。在类的构造方法中,首先创建了一个File对象来表示要操作的文件,如果该文件不存在则创建新文件。然后通过FileReader和BufferedReader类来读取文件...

    java基础知识I/O流使用详解

    编程语言的I/O类库中常常使用流这个抽象的概念,它代表任何有能力产生数据的数据源对象或时有能力接收数据的接收端对象,本文为大家介绍Java中I/O系统基础知识

    Java类库大全.docx

    Apache Commons:一个流行的Java类库,提供了许多实用的工具和组件,如Commons Lang(用于处理核心Java类库中的核心类)、Commons IO(用于处理I/O操作)、Commons Collections(提供了许多额外的集合类)等。...

    JavaI/O深入学习之输入和输出

    主要介绍了JavaI/O深入学习之输入和输出,Java类库中的I/O类分成输入和输出两部分,可以在JDK文档里的类层次结构中查看到。,需要的朋友可以参考下

    深入分析JAVA IO

    本文阐述的内容较多,从 Java 基本 I/O 类库结构开始说起,主要介绍了磁盘 I/O 和网络 I/O 的基本工作方式,最后介绍了关于 I/O 调优的一些方法。

    Android开发应用实战详解源代码

    5.12.2 java i/o基本类库介绍 5.12.3 具体实现 5.13 获取file和cache的路径 5.14 wi-fi服务 5.14.1 wi-fi简介 5.14.2 实现原理 5.14.3 具体实现 5.15 获取sim卡内信息 5.15.1 sim卡简介 5.15.2 实现原理 5.15.3 ...

    基于 Java Swing + 人脸识别编写的学校考试系统源代码Java基础大作业

    几乎涵盖了 Java 基础面向对象,封装继承多态,I/O 流,多线程,网络,数据库的所有知识 项目用到的主要技术 利用阿里云的短信API服务提供登录注册时的短信发送 利用 Java Mail 实现发送邮件 用户密码采用 MD5 加盐...

    java_diary_18.rar_JFC_swing_反射机制_国际化 java

    j2se 18天笔记是根据网络...Day12:线程机制与I/O流的方法 Day13:I/O流的类与编码方式 Day14:优化的I/O流与网络编程 Day15:网络编程与常用类库 Day16:国际化与新特性 Day17:新特性与并发线程 Day18:软件开发流程

    ava支持的zip压缩和解压缩

    Java I/O类库还收录了一些能读写压缩格式流的类。要想提供压缩功能,只要把它们包在已有的I/O类的外面就行了。这些类不是Reader和Writer,而是InputStream和OutStreamput的子类。这是因为压缩算法是针对byte而不是...

    jdk1.7.0.80.zip

    Java SE API包括一些重要的语言结构以及基本图形,网络和文件I/O。我们在自己的程序中,调用前辈们写好的这些Class,来作为我们自己开发的一个基础。当然,现在已经有越来越多的性能更好或者功能更强大的第三方类库...

    JAVA基础入门教程

    z Java I/O 流(character Stream, byte Stream, serialization) z Java Collections Framework z Java GUI(awt, swing, layoutManger, eventhandling….) z 共32学时,上机两次(每次4小时) 3 第一讲JAVA 概述 1. ...

    JDK1.7,JDK的种类:最主流的JDK是Sun公司发布的JDK

    Java SE API包括一些重要的语言结构以及基本图形,网络和文件I/O。我们在自己的程序中,调用前辈们写好的这些Class,来作为我们自己开发的一个基础。当然,现在已经有越来越多的性能更好或者功能更强大的第三方类库...

    Java超神之路.rar

    3.I/O,Socket编程,首先要熟悉Java中Socket编程,以及I/O包,再深入下去就是JavaNIO,再深入下去是操作系统底层的Socket实现,了解Windows和Linux中是怎么实现socket的,如果你想学习Java可以来这个群,首先是五三二...

    基于 Java Swing + 人脸识别 实现的学校考试系统

    java ## 项目用到的主要技术 ...2. 利用 Java Mail 实现发送邮件 ...4. 利用百度AI的人脸识别接口整合Java Swing 实现了人脸识别 5. 利用 Spire 类库实现校园卡上的条形码识别 ...5. 利用I/O流爬取网络图片作为封面

    编程课件+Java系列课程+PPT课件+Java教学

    # Java基础知识课件教程浓缩版 Java是一种跨平台、面向对象的编程语言,广泛应用于企业级应用、移动...- I/O流:讲解输入输出流的基本概念。 - 文件操作:指导文件的读写和操作。 六、多线程编程 - 线程基础:说明

    Java大作业基于 Java Swing + 人脸识别 编写的学校考试系统源码

    项目用到的主要技术 ... 利用 Java Mail 实现发送邮件 ... 利用百度AI的人脸识别接口整合Java Swing 实现了人脸识别 利用 Spire 类库实现校园卡... 利用原生 I/O 流配合网络已经正则表达式从必应官网网爬取每日一图作为封面

    JAVA网络编程第4版

    《Java网络编程(第4版)》全面介绍了如何使用Java开发网络程序。你将学习如何使用Java的网络类库既快速又轻松地完成常见的网络编程任务,如编写...第四版经过全面修订,已经涵盖REST、SPDY、异步I/O和很多其他高级技术。

    Java类库的更新.pdf

    CPU 使用率、I/O 延迟、系统整体的吞吐量都必须测量和分析。到那时,我们才能判定到底是哪个组件导致了性能瓶颈。关于这个主题有大量优秀的资源,相关的方法和工具也不只针对Java。假定你已经完成了分析,并且判断出...

    Java NIO与IO的差别和比较

     J2SE1.4以上版本号中公布了全新的I/O类库。本文将通过一些实例来简介NIO库提供的一些新特性:非堵塞I/O,字符转换,缓冲以及通道。  一. 介绍NIO  NIO包(java.nio.*)引入了四个关键的抽象数据类型,它们...

Global site tag (gtag.js) - Google Analytics