java io-关于Java字节流的困惑

问题描述

关于Java字节流的困惑

书上讲字节流在操作时不会用到缓冲区,可是OutPutStream类中却有一个刷新缓冲区的方法flush,这是为什么?

解决方案

从基类继承的。好比母鸡不会飞为什么有翅膀

java.io.OutputStream.flush() 方法刷新此输出流并强制将所有缓冲的输出字节被写出。刷新的常规协定是,调用它是一个迹象表明,如果以前写的任何字节都被缓冲的输出流的实现,如字节应立即写入到它们的目的地。

此流的预期目标是由底层的操作系统,例如一个文件,然后刷新流保证提供了一个抽象只是先前写入的字节流传递给操作系统进行写入;它并不能保证他们实际上写的是一个物理设备,如磁盘驱动器。

OutputStream中的flush方法不执行任何操作。

说的很清楚

解决方案二:

书上可能写得有误,传统的java io都会用到缓冲区的,数据从硬盘读到内存缓冲区,然后程序内存空间再读或写。
NIO才是没有用到缓冲区,可以看下笔者之前整理的:http://blog.csdn.net/evankaka/article/details/48464013

时间: 2024-10-30 05:36:42

java io-关于Java字节流的困惑的相关文章

java io学习(二十) InputStreamReader和OutputStreamWriter

InputStreamReader和OutputStreamWriter 是字节流通向字符流的桥梁:它使用指定的 charset 读写字节并将其解码为字符. InputStreamReader 的作用是将"字节输入流"转换成"字符输入流".它继承于Reader. OutputStreamWriter 的作用是将"字节输出流"转换成"字符输出流".它继承于Writer. InputStreamReader和OutputStrea

Java IO系统总结

1 Java IO版本 Java库的IO分为输入/输出两部分. 早期的Java 1.0版本的输入系统是InputStream及其子类,输出系统是OutputStream及其子类. 后来的Java 1.1版本对IO系统进行了重新设计.输入系统是Reader及其子类,输出系统是Writer及其子类. Java1.1之所以要重新设计,主要是为了添加国际化支持(即添加了对16位Unicode码的支持).具体表现为Java 1.0的IO系统是字节流,而Java 1.1的IO系统是字符流. 字节流,就是数据

Java IO流学习总结

 Io流的内容比较多 ,大致可以分为字节流和字符流,其中为了提高效率又用到了缓冲区. Java流操作有关的类或接口: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作.  IO流的分类 根据处理数据类型的不同分为:字符流和字节流 根据数据流向不同分为:输入流和输出流 字符流和字节流 字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象.本

Java IO

一.java io 概述 1.1 相关概念 Java IO Java IO即Java 输入输出系统.不管我们编写何种应用,都难免和各种输入输出相关的媒介打交道,其实和媒介进行IO的过程是十分复杂的,这要考虑的因素特别多,比如我们要考虑和哪种媒介进行IO(文件.控制台.网络),我们还要考虑具体和它们的通信方式(顺序.随机.二进制.按字符.按字.按行等等).Java类库的设计者通过设计大量的类来攻克这些难题,这些类就位于java.io包中. 在JDK1.4之后,为了提高Java IO的效率,Java

java io学习(十一) 缓冲输入流的认知、源码和示例

BufferedInputStream(缓冲输入流)的认知.源码和示例 本章内容包括3个部分:BufferedInputStream介绍,BufferedInputStream源码,以及BufferedInputStream使用示例. BufferedInputStream 介绍 BufferedInputStream 是缓冲输入流.它继承于FilterInputStream. BufferedInputStream 的作用是为另一个输入流添加一些功能,例如,提供"缓冲功能"以及支持&

java io学习(三) 管道的简介,源码分析和示例

管道(PipedOutputStream和PipedInputStream)的简介,源码分析和示例 本章,我们对java 管道进行学习. java 管道介绍 在java中,PipedOutputStream和PipedInputStream分别是管道输出流和管道输入流. 它们的作用是让多线程可以通过管道进行线程间的通讯.在使用管道通信时,必须将PipedOutputStream和PipedInputStream配套使用. 使用管道通信时,大致的流程是:我们在线程A中向PipedOutputStr

图解 Java IO : 一、File源码

Writer      :李强强 记得Java源码是从集合类开始看的,写了一系列集合相关的文章,受到不错的评价.感谢各位读者.我依旧会读到老写到老,并生动形象的写出来心得体会.这次依旧是图解Java IO. Java IO – File的要点,应该是 1.跨平台问题的解决 2.文件的安全 3.文件的检索方法 一.代码小引入 代请看一个简单的小demo:(ps:开源项目java-core-learning地址:https://github.com/JeffLi1993) import java.i

Java.nio vs Java.io

Java.nio vs Java.io By Nino Guarnacci on Jun 18, 2009 --- posted by Davide Pisano This document is not a Java.io or a Java.nio manual, or a technical document about Java.io and Java.nio use. It only attempts to compare these two packages, highlightin

maven-myeclipse上java.io.IOException

问题描述 myeclipse上java.io.IOException java.io.IOException: Transfer for nexus-maven-repository-index.properties failed; Transfer error: null ? 转移,nexus-maven-repository-index.properties失败:传输错误:无效 该怎么办

source-Java出现了java.io.StreamCorruptedException

问题描述 Java出现了java.io.StreamCorruptedException java.io.StreamCorruptedException: invalid type code: 00 如题,我是在做模拟ATM的时候遇到问题 具体问题:java.io.StreamCorruptedException: invalid type code: 00 at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.