`
snoopy7713
  • 浏览: 1149067 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

java常用类解析三:IO系统装饰类

    博客分类:
  • java
阅读更多

java IO系统采用装饰器模式,用一些装饰类来装饰输入输出来,提供更强大的IO操作

FilterInputStream(FilterOutputStream)继承自InputStream(Outputstream)

常用装饰类(都继承自FilterInputStream) 功能

DataInputStream(DataOutputStream) 读写基本类型即UTF

BufferedInputStream(BufferedOutputStream) 使用缓冲区

PrintStream继承自Outputstream,用于格式化输出到文本或控制台等


package test;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/*
 * DataInputStream继承自FilterInputStream(FilterInputStream继承自InputStream)
 * 用来装饰InputStream,提供可移植方式从流读取基本数据类型
 * DataOutputStream继承自FilterOutputStream(FilterOutputStream继承自OutputStream)
 * 用来装饰OutputStream,提供可移植方式向流写入基本数据类型
 * DataInputStream/DataOutputStream可以实现数据的存储与恢复
 */
public class DataInputStreamDemo {
	public static void main(String[] args) {
		DataOutputStream dataOutStream = null;
		try {
			dataOutStream = new DataOutputStream(new BufferedOutputStream(
					new FileOutputStream("file/aa.data")));
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		try {// 写入文件
			dataOutStream.writeChar('a');
			dataOutStream.writeInt(3);
			dataOutStream.writeDouble(5.5);
			dataOutStream.writeFloat(3.2f);
			dataOutStream.writeUTF("nihaoma");
			dataOutStream.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		DataInputStream dataInputStream = null;
		try {
			dataInputStream = new DataInputStream(new BufferedInputStream(
					new FileInputStream("file/aa.data")));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		try {// 读取文件
			System.out.println(dataInputStream.readChar());
			System.out.println(dataInputStream.readInt());
			System.out.println(dataInputStream.readDouble());
			System.out.println(dataInputStream.readFloat());
			System.out.println(dataInputStream.readUTF());
			dataInputStream.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
 
package test;

import java.io.FileNotFoundException;
import java.io.PrintStream;

/*
 * 继承自FilterOutputStream,其中DataOutputStream处理数据的存储,PrintStream处理显示
 * 用于格式化打印
 */
public class PrintStreamDemo {
	public static void main(String[] args) throws FileNotFoundException {
		// 把数据可视化格式显示到文本文件中
		PrintStream printStream = new PrintStream("file/test2.txt");
		printStream.println('a');
		printStream.println(2);
		printStream.println(3.2);
		printStream.println("liuhaifang");
		printStream.println("刘海房");
		// 可视化显示到控制台
		printStream = new PrintStream(System.out);
		printStream.println("hello  java");
	}
}
 
  • 大小: 66.4 KB
分享到:
评论

相关推荐

    java常用类解析及示例及一些工具类源代码

    主要讲解了System类、Object类、Arrays类、Cloneable接口、IO系统输入输出类及装饰类、IO系统文本读写工具类、IO系统二进制读写工具类、对象序列化工具类、File类及文件搜索工具类、java异常机制及自定义异常类、...

    Java_IO完全总结

    ### Java IO系统全面解析 #### 一、Java IO系统概述 Java IO系统是Java平台标准库中的一个重要组成部分,主要用于处理输入输出操作。Java IO系统主要包括两个包:`java.io`和`java.nio`(New IO),其中`java.io`...

    javaIO详细讲解+详细案例

    Java IO流体系中,有几个核心的抽象基类,包括`InputStream`和`OutputStream`,它们是所有其他具体输入输出流类的基类。此外,还有`Reader`和`Writer`作为字符流的基类。 1. **输入字节流** `InputStream`: - **...

    更新至2020年12月最全Java 面试全解析:核心知识点与典型面试题.rar

    Java是一种广泛使用的面向对象的编程语言,自1995年发布以来,它在软件开发...此外,还需关注Java新版本的特性,如Java 8的Lambda表达式、Optional类,Java 11的模块化系统等,这些都是现代Java开发者应该具备的知识。

    java IO流精讲 JAVA IO流实例开发

    在Java IO库中,存在一对“装饰器”流,即BufferedInputStream和BufferedReader。它们提供缓冲功能,可以显著提高数据读写的效率。例如,使用BufferedReader.read()方法可以一次性读取一行文本,而不是一个字符一个...

    Java编程模式与范例:基础开发技巧

    例如,单例模式、工厂模式、观察者模式、装饰器模式等,都是Java开发中常见的设计模式,它们在代码组织和模块化方面起着关键作用。 - **架构模式**:如MVC(模型-视图-控制器)、MVVM(模型-视图-ViewModel)以及...

    【面试必备】JAVA 最常见面试题全解析 附 PDF.pdf_java面试_javapdf_java_面试题_

    这份"【面试必备】JAVA 最常见面试题全解析 附 PDF"文档,正是为准备Java面试的开发者量身定制的资源,涵盖了Java的基础到高级知识点,旨在帮助你全面理解和掌握Java技术。 一、基础篇 1. Java语法:包括变量、数据...

    JAVA课件Java IO.ppt

    本课件将详细介绍Java I/O流的基本概念、分类以及常用类。 首先,Java I/O的核心概念是“流”(Stream)。流可以被视为数据的流动通道,它可以从数据源(DataSource)读取信息到程序(Program),也可以将程序中的...

    JAVA IO流详解

    Java IO流主要分为两大类: 1. **InputStream/OutputStream**:主要用于处理字节数据。 - `InputStream`:输入流,用于从外部设备读取数据。 - `OutputStream`:输出流,用于向外部设备写入数据。 2. **Reader/...

    传智播客_Java培训_毕向东_Java基础[07-IO]

    #### 三、IO流的常用基类 1. **字节流:** - 抽象基类:`InputStream`和`OutputStream`。 - 子类示例:`FileInputStream`用于读取文件中的数据;`FileOutputStream`用于写入数据到文件。 2. **字符流:** - ...

    java IO应用

    流在Java IO中分为两大类:字符流和字节流。字符流处理的是Unicode字符,适合文本数据,包括Reader和Writer抽象类;字节流处理的是8位字节,适用于所有类型的数据,如图片、音频等,包括InputStream和OutputStream...

    Java_IO流详解

    Java的IO体系主要分为两大类:面向字节的流(Byte Streams)和面向字符的流(Character Streams)。面向字节的流主要包括`InputStream`和`OutputStream`,而面向字符的流则由`Reader`和`Writer`构成。 - **...

    【电子版】Java校招面试题库(附答案与解析)java篇.zip

    - 接口与抽象类:区分两者的使用场景,理解默认方法和静态方法。 - 注解(Annotation):学习注解的定义、使用及元注解。 3. **集合框架** - List、Set、Map接口:了解各种实现类,如ArrayList、LinkedList、...

    一站式学习Java网络编程 全面理解BIO:NIO:AIO1

    FilterReader 和 FilterInputStream 是 java.io 中的装饰器模式,提供了流的装饰功能,可以在基本流上添加新的功能。 四、java.io 之字节流 字节流是 java.io 中的基本流类型,用于处理二进制数据。字节流包括 ...

    Java 最常见 200+ 面试题全解析:面试必备208题

    Java作为一门广泛使用的编程语言,其面试题涵盖了众多的知识领域,包括基础语法、面向对象、集合框架、多线程、网络编程、IO流、异常处理、JVM内存模型、设计模式、数据库操作、Spring框架等。以下是对这些知识点的...

    Java编程技巧典型案例解析

    《Java编程技巧典型案例解析》一书聚焦于这些关键技巧,通过24个精心挑选的源代码案例,深入浅出地展示了Java编程中的精华所在。以下是根据标题、描述以及压缩包子文件的文件名称列表,提炼出的一些核心Java编程知识...

Global site tag (gtag.js) - Google Analytics