首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java IO 的分类、使用场景、缓冲、使用例子、文件拷贝

Java中,是通过 处理IO的,这种处理模式称为 IO,IO是一种顺序读写数据的模式。 你可以想象它是一根水管,数据就像水一样, 起点—终点 可互相流动。 ?...为了更方便地处理中文这些字符,Java就推出了字符。 字节流和字符的其他区别: 字节流一般用来处理图像、视频、音频、PPT、Word等类型的文件。...字节流本身没有缓冲区,缓冲字节流相对于字节流,效率提升非常高。而字符本身就带有缓冲区,缓冲字符相对于字符效率提升就不是那么大了。...flush()仅仅是刷新缓冲区,准确的说是**“强制写出缓冲区的数据”**,对象还可以继续使用。 总结一下: Java的IO有一个 缓冲区 的概念,不是Buffer概念的缓冲区。...举个很形象的例子加深理解: 我从黄桶(读)通过水泵(管道)把水抽到绿桶(写),水管就相当于缓冲区,当我看到黄桶水没有了,我立马关了水泵,但发现水管里还有水没有流到绿桶,这些残留的水就相当于内存中丢失的数据

1.4K51
您找到你想要的搜索结果了吗?
是的
没有找到

Java 基础篇】Java字节缓冲详解

导言 在Java中,字节缓冲是一种用于提高字节流读写效率的。它们通过在内存中创建缓冲区,减少了与底层设备的直接交互次数,从而提高了读写的速度。...本文将详细介绍Java字节缓冲的原理、使用场景和常用类,并提供一些示例代码。 一、字节缓冲原理 Java字节缓冲是在字节流的基础上添加了缓冲功能。...Java提供了两个常用的字节缓冲类:BufferedInputStream和BufferedOutputStream。它们分别用于对字节输入流和字节输出流进行缓冲处理。...三、常用的字节缓冲Java提供了两个常用的字节缓冲类,分别是BufferedInputStream和BufferedOutputStream。...希望本文对你理解和应用Java字节缓冲有所帮助!

28440

Java成神路 —— 字节缓冲 && 字符

字符与字节流 1.字节缓冲 1.1 字节缓冲构造方法 1. 字节缓冲介绍 lBufferOutputStream:该类实现缓冲输出。...通过设置这样的输出,应用程序可以向底层输出写入字节,而不必为写入的每个字节导致底层系统的调用 lBufferedInputStream:创建BufferedInputStream将创建一个内部缓冲区数组...当从中读取或跳过字节时,内部缓冲区将根据需要从所包含的输入流中重新填充,一次很多字节 2....字符的介绍 由于字节流操作中文不是特别的方便,所以Java就提供字符 字符 = 字节流 + 编码表 2....字符缓冲介绍 BufferedWriter:将文本写入字符输出缓冲字符,以提供单个字符,数组和字符串的高效写入,可以指定缓冲区大小,或者可以接受默认大小。

31510

Java缓冲、转换流、序列化

专栏介绍 【Java】 目前主要更新Java,一起学习一起进步。...本期介绍 本期主要介绍缓冲、转换流、序列化 文章目录 第一章 缓冲 1.1 概述 1.2 字节缓冲 构造方法 效率测试 1.3 字符缓冲 构造方法 特有方法 1.4 练习:文本排序 案例分析...4.1 概述 4.2 PrintStream类 构造方法 改变打印流向 第一章 缓冲 昨天学习了基本的一些,作为IO的入门,今天我们要见识一些更强大的。...1.1 概述 缓冲,也叫高效,是对4个基本的FileXxx 的增强,所以也是4个,按照数据类型分类: 字节缓冲:BufferedInputStream,BufferedOutputStream...字符缓冲:BufferedReader,BufferedWriter 缓冲的基本原理,是在创建对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率

32920

Java处理之高效读写的缓冲

之前的博客梳理了基本的字节流和字符Java字节流和字符详解,本文主要讲基于基础的字节字符做读写增强的缓冲。...文章目录 概述 字节缓冲 构造方法 效率测试 字符缓冲 构造方法 特有方法 文本排序练习 案例分析 案例实现 概述 缓冲,也叫高效,是对4个基本的FileXxx 的增强,所以也是4个...,按照数据类型分类: 字节缓冲:BufferedInputStream,BufferedOutputStream 字符缓冲:BufferedReader,BufferedWriter 缓冲的基本原理...,是在创建对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。...); 效率测试 查询API,缓冲读写方法与基本的是一致的,我们通过复制大文件(375MB),测试它的效率。

46110

Java IO学习总结三:缓冲-BufferedInputStream、BufferedOutputStream

Java IO学习总结三:缓冲-BufferedInputStream、BufferedOutputStream 转载请标明出处:http://blog.csdn.net/zhaoyanjun6.../article/details/54894451 本文出自【赵彦军的博客】 Java IO学习总结一:输入输出 Java IO学习总结二:File Java IO学习总结三:缓冲-...BufferedInputStream、BufferedOutputStream Java IO学习总结四:缓冲-BufferedReader、BufferedWriter Java IO学习总结五...Java IO学习总结七:Commons IO 2.5-FileUtils 2021年 Java Okio-更加高效易用的IO库 继承关系图 InputStream |__FilterInputStream...我们有必要知道不带缓冲的操作,每读一个字节就要写入一个字节,由于涉及磁盘的IO操作相比内存的操作要慢很多,所以不带缓冲效率很低。带缓冲,可以一次读很多字节,但不向磁盘中写入,只是先放到内存里。

79220

Java学习笔记之字节缓冲&字符&IO练习

0x00 概述 本文涉及Java知识点有字节缓冲,字符。...0x01 字节缓冲 1.1 字节缓冲构造方法 字节缓冲介绍     BufferOutputStream:该类实现缓冲输出,通过设置这样的输出,应用程序可以向底层输出写入字节,而不必为写入的每个字节频繁调用系统底层...Java文件 需求:把模块目录下的ConversionStreamDemo.java 复制到模块目录下的 Copy.java 实现步骤:     根据数据源创建字符缓冲输入流对象     根据目的地创建字符缓冲输出对象...根据目的地创建字符缓冲输出对象     读写数据,复制文件,使用字符缓冲特有功能实现     释放资源 示例 package CopyJavaDemo3; import java.io.*; public...字节流     字节流可以复制人意文件类型,有4种方式一般采用字节缓冲一次读写一个字节数组的方式 字符     字符只能复制文本数据,有5钟方式,一般采用字符缓冲的特有功能 0x03 练习案例

51930

java_缓冲、转换流、序列化

一、缓冲 缓冲的基本原理,是在创建对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。...字节缓冲 构造方法 创建字节缓冲输入流: BufferedInputStream bis = new BufferedInputStream(new FileInputStream("bis.txt...:" + (end - start) + " 毫秒"); } } 输出结果为: 缓冲使用数组复制时间:10 毫秒 字符缓冲 构造方法 创建字符缓冲输入流 BufferedReader...ObjectOutputStream类 java.io.ObjectOutputStream 类,将Java对象的原始数据类型写出到文件,实现对象的持久存储。...PrintStream类 java.io.PrintStream 类,该类能够方便地打印各种数据类型的值 构造方法 public PrintStream(String fileName) : 使用指定的文件名创建一个新的打印

41430

Java基础-3】吃透Java IO:字节流、字符缓冲

Java IO 前言 1 初识Java IO 1.1 IO分类 1.2 案例实操 2 IO对象 2.1 File类 2.2 字节流 2.3 字符 2.4 序列化 3 IO方法 3.1...Java IO分为几种类型? 字节流和字符的关系与区别? 字符是否使用了缓冲缓冲的效率一定高吗?为什么? 缓冲流体现了Java中的哪种设计模式思想? 为什么要实现序列化?如何实现序列化?...、灵活的读写功能,例如BufferedInputStream(缓冲字节流) 处理和节点应用了Java的装饰者设计模式。...这个例子中,小推车可以视为缓冲区,小推车的存在,减少了我们装车次数,从而提高了效率。 需要注意的是,缓冲效率一定高吗?不一定,某些情形下,缓冲效率反而更低,具体请见IO效率对比。...完整的IO分类图如下: 1.2 案例实操 接下来,我们看看如何使用Java IO。 文本读写的例子,也就是文章开头所说的,将“松下问童子,言师采药去。只在此山中,云深不知处。”

47230

字节缓冲

1、字节缓冲 字节流一次读写一个数组的速度明显比一次读写一个字节的速度快很多,这是加入了数组这样的缓冲区效果,java本身在设计的时候,也考虑到了这样的设计思想(装饰设计模式后面讲解),所以提供了字节缓冲...字节缓冲输出 BufferedOutputStream 字节缓冲输入流 BufferedInputStream 这种类被称为:缓冲区类(高效类) 构造方法可以指定缓冲区的大小,但是我们一般用不上...缓冲写数据 public static void main(String[] args) throws IOException { //构造器 // BufferedOutputStream...//字节缓冲输出对字节输出对象进行包装 // BufferedOutputStream bos = new BufferedOutputStream(fos); // 简单写法...原因很简单,字节缓冲仅仅提供缓冲区,为高效而设计的。但是呢,真正的读写操作还得靠基本的对象实现。 2、字节缓冲复制数据练习 把d:\a.txt内容复制到当前项目目录下的b.txt中

39410

Java - IO System类支持和缓冲

System类的支持和缓冲 System类对IO的支持 在System类中,为了支持IO操作提供了三个常量: 错误输出: public static final PrintStream err; 输出到标准输出设备...Java并没有直接提供键盘输入功能;而System类中提供了 in 对象,此对象类型是 IntputStream public class TestDemo { public static void...缓冲 解决中文字符输入带来的诸多问题 处理中文输入的问题,由于中文单字符占两个字节,由此我们首先想到的是利用字符处理中文数据。...缓冲操作 字符缓冲: BufferedReader:字符缓冲输入流 BufferedWriter:字符缓冲输出 字节缓冲: BufferedInputStream:字节缓冲输入流 BufferedOutputStream...:字节缓冲输出 字符缓冲输入流 BufferedReader构造 public BufferedReader(Reader in); 读取一行数据 public String readLine() thows

49120

java字节流入门(缓冲输出

在网上学习java IO的时候,会发现在 new 一个时各种嵌套,有的甚至嵌套了三四层,完全不知道是啥套路。...基本用法 这个的功能可以根据名字看出来,是一个缓冲输出,可以当做一个缓冲区,将输出的字节暂时存在缓冲区里,那么当缓冲区满了之后干嘛呢?...在这里我们用单缓冲区和多缓冲区来区分。之前我们的缓冲区用的是 BAOS,参考 java 字节流入门(内存数组->文件)。那用 BFOS 可不可以?...假如缓冲缓冲区大小为 8KB,每个缓冲都接收了 24KB 的数据,但是数据并不是均匀来的,因此刷到文件中的顺序是不固定的,也就是每个流会随机触发 3 次 flush。...代码: https://github.com/qiaojialin/Java-IO-Learning 致谢:东哥

60810

缓冲简要介绍

一、缓冲有什么作用? 使用缓冲数组以后,整体的读取,写入效率提升很大。 降低了CPU通过内存访问硬盘的次数。提高效率,降低磁盘损耗。 二、缓冲包含什么?...注意 这里需要注意的是,所有的缓冲都没有任何的读取,写入文件能力,这里都需要对应的输入流和输出 来提供对应的能力。...在BufferedOutputStream关闭时,首先会调用flush方法,保存数据到文件,清空缓冲区,并且规 划缓冲区占用内存,同时关闭缓冲使用的字节输出。...writer); 2.3.1 字符缓冲效率问题 1....关闭字符缓冲,都会首先释放对应的缓冲数组空间,并且关闭创建对应的字符输入流和字符输出。 5.

64220

Java基础(五)| IO 之使用缓冲的正确姿势

Java IO IO 要说明白需要好几篇才行,今天复习缓冲。 三、为什么需要缓冲? 前面我们已经复习过字节流、字符。...3.1 字节缓冲 字节缓冲与文件字节流的用法差不多不再赘述,有一点不同的是字节缓冲的创建是建立在文件字节流的基础上,这就导致构造方法的变化,字节缓冲的构造方法是这样的: // 字节缓冲输入流 BufferedInputStream...接着是缓冲复制文件: /** * Project Name:review_java * Package Name:com.nasus.io.bufferinoutstream <br/...缓冲(不用数组)复制时间 最后是缓冲使用数组(一次读多一点): /** * Project Name:review_java * Package Name:com.nasus.io.bufferinoutstream...缓冲(使用数组)复制时间 3.2 字符缓冲 与字节缓冲一样,字符缓冲的创建也是建立在文件字符的基础上: // 字符缓冲输入流 BufferedReader br = new BufferedReader

91410

字节流与缓冲

java零基础入门-高级特性篇(十一) IO 2 本章先来看两大“”派中的字节流。字节流相对字符总体结构简单一点,只用记住它的4个最基本的操作类就可以了。下面一张图来看看这四个基本的操作类。...我们通常使用windows作为编码的系统,而windows中路径分隔符是单个 \ ,但是在java代码中,需要添加一个\作为转义符,这样才能被java识别为路径分隔符。...文本文件不是应该使用字符吗? 因为这里使用文本文件方便演示,如果读取一个图片或者视频,Eclipse没有办法来展示读取的图片或者视频,所以用文本文件来做例子比较方便。...于是为了提高效率,缓冲流出现了。看看缓冲缓冲了什么?...文件越大,缓冲效率的提升越明显。 下面来看一个例子,首先是普通流。 ? 普通流的文件复制 这里的普通流没有设置缓冲区,逐个字节进行文件读入和写入,花了17秒完成5m文件的复制。

66940
领券