`
raidyue
  • 浏览: 18776 次
  • 性别: Icon_minigender_1
  • 来自: 湖南常德
社区版块
存档分类
最新评论

I/O体系结构总结

阅读更多

 

I/O体系结构总结

流的概念和分类: java类库中的I/O类分为输入和输出连个部分,并将其抽象为“流(stream)”,他代表任何有能力产生产生数据的数据源对象或者是有能力接收数据的接收对象,形象的说流像一根水管,将数据从一头,传到另一头。

流按方向分可分为:输入流和输出流。

按性质分可以分为:原始流InputStream和OutputStream,缓冲流BufferedInputStream和BufferedOutputStream,基于具体数据的流DataInputStream/DataOutputStream,基于对象读写的流ObjectInput/ObjectOutput.

按操作数据分可分为:字节流和字符流

InputStream/OutputStream及其子类:

InputStream/OutputStream是基于字节的(一个byte一个byte的读取)抽象类,因此InputStream/OutputStream无法创建实例对象,因此我们要使用其子类来创建对象,我们常用的其子类,如FileInputStream/FileOutputStream,我们用这两个类从文件中读取或者输出子类,由于可能会抛出异常,我们用……try{}catch{}……处理,,代码实列

	/**
 	* FileOutputStream/FileInputStream
	 * 
	 * @param fileNam
	 *            :文件名
	 * @return:读到的内容作为字符串返回
	 * @throws IOException可能会抛出IO异常
	 */
	public void readAndWrite(String fileName, String newFileName) {

		try {
			// 构造输出流对象,作为一个InputStream对象
			// 创建的对象是InputStream的子类,我们使用父类的变量引用,方便统一使用
			InputStream is = new FileInputStream(fileName);
			OutputStream os = new FileOutputStream(newFileName);
			// 根据流中的字节长度,创建一个byte数组,保存读取到的数据

			// 将流中读取的数据写入另一文件
			int i = 0;
			//如果没有读到末尾,一边读取一边写入
			while ((i = is.read()) != -1) {
				os.write(i);
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		is.close();
		os.close();

	}
 

 注意:当我们使用完流以后,流并不会自动关闭,而是需要我们手动关闭,在其未关闭时,会一直占用系统资源,就像我们用完水,应该随手关掉水龙头,所以在这里我们也应该关闭流.关闭最上层的流,下层的流也会关闭

 

缓冲流(BufferedInputStream/BufferedOutputStream):

这连个流分别是InputStream/OutputStream的子类,其用法与上述类似,

public void readAndWrite_buffered(String filePath, String newFilePath) {

		// 创建从源文件来的输入流

		try {
			// 创建源文件的输出流
			InputStream is = new FileInputStream(filePath);
			BufferedInputStream bis = new BufferedInputStream(is);
			// 创建源文件的输入流
			OutputStream os = new FileOutputStream(newFilePath);
			BufferedOutputStream bos = new BufferedOutputStream(os);

			int i = 0;
			while ((i = bis.read()) != -1) {
				bos.write(i);
			}
			is.close();
			os.flush();
			os.close();

		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}
 

上述两种的区别:jvm在计算机内存开辟了专门的区域,

 

当使用第一种方法对文件进行读写时,流的流向是,硬盘某一块空间-->计算机内存-->jvm内存-->计算机内存-->硬盘的另一空间;

使用的耳中方法时会在jvm内存中开辟一小块空间,硬盘某一块空间-->计算机内存-->jvm内存-->缓冲流空间-->vm内存-->计算机内存-->硬盘的另一空间;

缓冲流提高了文件读写的效率,因为如果没有缓冲区,应用程序每次IO都要和设备进行通信,效率很低,因此缓冲区为了提高效率,当写入设备时,先写入缓冲区,等到缓冲区有足够多的数据时,就整体写入设备。

关于DateInputStream和DataOutputStream:

这两种刘只要用来读写指定的数据类型,具体用法与上述类相似。

画板数据保存:

画板保存将在画板总结中详细说明

分享到:
评论
1 楼 GLC 2012-07-16  
吊什么口味、、(欲知后事,且听下回分解)小心要你再写。。。。。

相关推荐

    MAX 10FPGA通用IO

    I/O体系结构方面,MAX 10 FPGA的I/O单元具有Bank体系结构,以及相应的Bank位置信息。Bank是一种组织I/O引脚的逻辑单元,它可以配置为不同的I/O标准和电源电压,从而实现不同类型的I/O接口。此外,MAX 10 FPGA的I/O...

    众核处理器中硬件支持的I_O虚拟化优化技术研究.pdf

    硬件增强的I/O虚拟化方案能够在体系结构层面提供全面、高效的解决方案,减少软件模拟带来的性能开销。 在关键技术方面,文章重点研究了DMA(直接存储器访问)重映射和中断重定向技术。DMA重映射是I/O虚拟化中用于...

    MAX10 通用IO用户指南

    **I/O Bank体系结构和位置** I/O Bank的布局和结构设计使得MAX 10能够高效地管理电源和信号路由。每个Bank有特定的位置和引脚排列,这在设计PCB时必须考虑,以确保正确连接外部设备。 **I/O缓冲器** MAX 10的I/O...

    计算机体系结构的复习重点整理

    计算机体系结构是计算机科学与技术领域的一个核心课程,它涵盖了计算机硬件和软件之间的接口设计,以及如何通过这些接口实现高效的数据处理和计算。本复习重点整理将深入探讨以下几个关键知识点,帮助你更好地理解和...

    Oracle-IO问题及性能调优

    理解Oracle的I/O体系结构,使用有效的监控工具,以及针对性地调整数据库参数和硬件配置,都是提升I/O性能的重要步骤。在实际操作中,应结合具体情况,进行综合分析和调整,以实现最优的I/O性能。

    湖南大学计算机组成与体系结构实验内容实验报告及资料

    总结来说,湖南大学的这个实验课程全面覆盖了计算机组成与体系结构的关键知识点,包括处理器设计、存储系统、I/O系统和指令系统等。实验报告和资料是深化理解、检验学习效果的重要工具,它们帮助学生将抽象的理论...

    微型计算机:微处理器(CPU)、存储器、I/O接口电路由总线有机地连接在一起的整体,称为微型计算机。

    通常采用分层存储体系结构,如高速缓存、主存等层次。 - **单片机**:单片机的存储器组织结构相对简单,存储器直接挂载在系统总线上,CPU可以通过物理地址直接访问存储器单元。这种结构简化了内存管理,但也限制了...

    infiniband体系结构

    本文将详细介绍InfiniBand的技术背景、体系结构、物理拓扑、协议分层结构以及与传统I/O技术如PCI的对比。 #### 二、InfiniBand结构 InfiniBand体系结构主要包括以下几个组成部分: 1. **信道适配器(Channel ...

    国科大胡伟武体系结构课后习题答案

    总结,"国科大胡伟武体系结构课后习题答案"不仅提供了对计算机体系结构基础知识的巩固,还为深入研究和实践提供了指导。通过解答这些习题,学习者能够全面地掌握计算机体系结构的各个方面,为进一步学习操作系统、...

    计算机组织和体系结构复习总结

    计算机组织和体系结构是理解计算机运行基础的重要领域,它涵盖了计算机硬件的各个方面,包括计算机的组成、性能演变、指令执行、中断机制、存储系统以及输入输出操作等。以下是对这些知识点的详细解释: 1. **...

    计算机组成与结构体系英文课件:Chapter 3 – Basic InputOutput.ppt

    【计算机组成与结构体系英文课件:Chapter 3 – Basic Input/Output】 在计算机科学领域,输入/输出(Input/Output, I/O)是计算机系统与外部设备进行数据交换的关键部分。本课件主要涵盖了第3章关于基本输入/输出...

    嵌入式系统及应用ucos-Chapter8-IO管理-new.ppt

    这种体系结构的优点在于易于编写和移植驱动程序,同时允许根据实时性或其他应用需求从不同层次直接调用硬件,提供多种使用模式。 实现考虑: 设备管理涉及到三张关键表格:驱动程序地址表、设备名表和文件表。驱动...

    80X86汇编语言与计算机体系结构 中文版

    总结,《80X86汇编语言与计算机体系结构》中文版是学习计算机底层知识的重要教材,它涵盖了从硬件到软件的多个层面,通过深入学习,可以提升对计算机系统的整体理解和控制能力。对于计算机科学的学生和从业者,这...

    计算机体系结构(高级)

    高级计算机体系结构深入探讨了计算机内部的工作原理,涵盖了从硬件到软件的多个层面,包括处理器设计、内存系统、输入/输出(I/O)系统以及并行和分布式计算的概念。 在高级计算机体系结构中,我们首先会学习到处理器...

    Java软件开发实战 Java基础与案例开发详解 13-2 Java IO原理 共4页.pdf

    Java I/O体系结构是Java开发中非常重要的部分,它不仅涉及到文件读写,还涵盖了网络通信等多个方面。掌握Java I/O的基本原理和使用方法,对于开发高效稳定的应用程序具有重要意义。通过本章的学习,你应该对Java I/O...

    计算机体系结构实验报告(全)

    总结,这个“计算机体系结构实验报告”涵盖了计算机硬件和软件交互的诸多方面,旨在深化学生对计算机工作原理的理解,并提供实践经验。通过Sim模拟器的实际操作,学习者可以更好地掌握理论知识,并将其应用到实际...

    计算机体系结构讲义(清华)

    计算机体系结构是计算机科学与技术领域中的核心课程,它涵盖了硬件和软件之间的接口设计,以及如何构建高效、可靠的计算系统。清华大学的计算机体系结构讲义因其深入浅出的讲解方式而备受推崇,对于想要深入了解这一...

    计算机体系结构.ppt

    随着技术的发展,现代计算机体系结构不断演进,例如引入了多核CPU、高速缓存层次结构、多通道内存系统以及更复杂的I/O架构,如PCI Express和USB,以满足对更高计算性能和扩展性的需求。 计算机的主要技术指标包括但...

    英文讲义翻译梗概_计算机体系结构_CA_

    总结来说,"英文讲义翻译梗概"可能涵盖了计算机体系结构的核心概念,如冯·诺依曼架构、处理器设计、存储器体系、I/O系统以及虚拟化和并行计算。虽然内容简洁,但它提供了一个良好的框架,帮助学习者梳理计算机体系...

    计算机组成与体系结构(Linda Null)版1-7章全部题目答案

    《计算机组成与体系结构》是计算机科学领域的一本经典教材,由Linda Null著,它深入浅出地讲解了计算机硬件的基本原理、设计思想以及体系结构。这份压缩包包含了该书第一到第七章的所有题目答案,对于学习者来说是一...

Global site tag (gtag.js) - Google Analytics