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

Java(io字节输入流、字节输出

i:input 输入 读取; o:output 输出 写入; :数据(字符、字节)1个字符=1字节 一个字节=8个二进制; 输入:把硬盘中的数据,读取到内存中使用; 输出:把内存中的数据,写入到硬盘中保存...; 字节流:字节输入流 InputStream 字节输出 OutputStream字节符:字符输入流 Reader字符输出 Writer 一切皆为字节。...java.io.OutputStream:字节输出 此抽象类是表示输出字节流的所有类的超类; 定义了一些子类共性的成员方法 void close():关闭此输出并释放与此有关的所有系统资源 void...flush():刷新此输出并强制写出所有缓冲的输出字节 void write(byte[] b):将 b.length 个字节从指定的 byte 数组写入此输出。...abstract void write(int b):将指定的字节写入此输出 FileOutputStream extends OutputStream 文件字节输出 作用:把内存中的数据写入到硬盘的文件中

72720

字节缓冲

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

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

    字节流与缓冲

    java零基础入门-高级特性篇(十一) IO 2 本章先来看两大“”派中的字节流。字节流相对字符总体结构简单一点,只用记住它的4个最基本的操作类就可以了。下面一张图来看看这四个基本的操作类。...上例中不再需要循环逐个读入字符,而是将str转为字节,str.getBytes(),然后用输出fos调用write方法的重载方法write(str.getBytes())即可。...缓冲 上面讲解的普通流是逐个字节进行输入或输出,这样虽然可以完成工作,但是在效率上有很大的问题。...缓冲并不是每一个字节都要调用一次磁盘,而是根据设置的缓冲区大小,每当缓冲区满了以后,再调用一次磁盘,比如上图中,缓冲区设置为3,结果就是每次缓冲区有3个字节的数据以后,再调用一次磁盘,这样一来,调用磁盘的次数就减少了很多...文件越大,缓冲效率的提升越明显。 下面来看一个例子,首先是普通流。 ? 普通流的文件复制 这里的普通流没有设置缓冲区,逐个字节进行文件读入和写入,花了17秒完成5m文件的复制。

    67840

    JavaIO输入输出-字节

    IO分为输入流、输出 输入输出 又分为字节流、字符 字节流 InputStream:抽象了应用程序读取数据的方式 OutputStream:抽象了应用程序写 出数据的方式 EOF = End...(byte[] buf,int start, int size)读取数据到字节数组buf从buf的start位置开始存放size长度分数据 输出的基本方法 out.write(int b) //写出一个...byte到,b的低8位 out.write(byte[] buf) //将buf字节数组都写到 out.write(byte[] buf, int start,int size) //字节数组buf...从start位置开始写size长度的字节 FileInputStream 具体实现了在文件上读取数据 FileInputStream 实现了向文件写出byte数据方法 public static...void printHex(String fileName) throws IOException { //把文件转化字节流十六进制进行读操作 FileInputStream fis

    64610

    javaIO字节

    javaIO IO引入 字节流和字符(一些说明) 字节流没有用到缓冲区并不是没有用到内存 为什么输入流是读数据,而输出是写数据?...字节流说明 字节输入流读数据的方法 字节缓冲输入流 字节输出写数据的方法 字节缓冲输出 用输入输出实现数据的复制 复制单级文件夹(文件夹中只含有文件,不包含其它文文件夹) 复制多级文件夹(文件夹中包含文件夹...) 一个编码与解码的过程 IO引入 字节流和字符(一些说明) 在java中io分为字节流和字符。...字节流就是传输单位按为字节进行传输,字符就是传输按照字符为单位进行传输 字节流没有用到缓冲区并不是没有用到内存 字节流与字符的区别是什么呢?...// 2:基本字节流一次读取一个字节数组 // 3:字节缓存一次读取一个字节 // 4:字节缓存一次读取一个字节数组 //记录开始时间

    30730

    字节流与字符字节流和字符的使用哪个多?

    一 首先我们要知道 在程序中所有的数据都是以的方式进行传输或保存的 而有两种 字节流用来处理字节或二进制对象 字符主要用来处理字符或字符串,一个字符占两个字节 而上一篇的java 读写操作大文件...在字节流中输出数据主要是使用OutputStream完成,输入使的是InputStream 在字符中输出主要是使用Writer类完成,输入流主要使用Reader类完成 字节流在操作的时候本身是不会用到缓冲区...但是正如开头所说,在程序中所有的数据都是以的方式进行传输或保存的,所以使用字节的操作是最多的。...FileReader的构造器就是FileInputStream,也就是字节流。只是操作的时候用了buffer变成了字符而已。...三 那么,看了源码之后,我们总算明白为什么大多数io操作,我们都不直接使用字符的操作,而是取出字节流,把字节流变成我们希望的样子,才用字符操作吧?

    92510

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

    字符字节流 1.字节缓冲 1.1 字节缓冲构造方法 1. 字节缓冲介绍 lBufferOutputStream:该类实现缓冲输出。...通过设置这样的输出,应用程序可以向底层输出写入字节,而不必为写入的每个字节导致底层系统的调用 lBufferedInputStream:创建BufferedInputStream将创建一个内部缓冲区数组...当从中读取或跳过字节时,内部缓冲区将根据需要从所包含的输入流中重新填充,一次很多字节 2....字符的介绍 由于字节流操作中文不是特别的方便,所以Java就提供字符 字符 = 字节流 + 编码表 2....字符中和编码解码问题相关的两个类 InputStreamReader:是从字节流到字符的桥梁 它读取字节,并使用指定的编码将其解码为字符 它使用的字符集可以由名称指定,也可以被明确指定,或者可以接受平台的默认字符集

    32510

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

    0x00 概述 本文涉及Java知识点有字节缓冲,字符。...0x01 字节缓冲 1.1 字节缓冲构造方法 字节缓冲介绍     BufferOutputStream:该类实现缓冲输出,通过设置这样的输出,应用程序可以向底层输出写入字节,而不必为写入的每个字节频繁调用系统底层...需求:把 E:\itcast\字节流复制图片.avi 复制到模块目录下的 字节流复制图片.avi 实现步骤:     根据数据源创建字节输入流对象     根据目的地创建 字节输出对象     ...2.1 为什么会出现字符 字符介绍     由于字节流操作中文不是特别的方便,所以Java提供了字符     字符=字节流+编码表 中文的字节存储方式     用字节流复制文本文件时,文本文件也会有中文...字节流     字节流可以复制人意文件类型,有4种方式一般采用字节缓冲一次读写一个字节数组的方式 字符     字符只能复制文本数据,有5钟方式,一般采用字符缓冲的特有功能 0x03 练习案例

    52530

    java 字节输入流输出

    参考链接: Java中的字符字节流 Character Stream对比Byte Stream 目录  先序  1、Bits 工具类   2、输入流 InputStream  2.1、字节数组输入流...BufferedInputStream  2.2.2、 数据输入流 DataInputStream  2.2.3、回推输入流 PushbackInputStream  2.3、文件输入流 FileInputStream  3、输出...OutputStream  3.1、字节数组输出 ByteArrayOutputStream  3.2、过滤输出 FilterOutputStream  3.2.1、缓冲输出 BufferedOutputStream...  3.2.2、DataOutputStream 数据输出  3.3、文件输出 FileOutputStream  先序  下面这张图是来自这篇博客https://blog.csdn.net/u010145219...1、Bits 工具类  Bits 是一个工具类,一般是供 java io 包下的类使用的,用于处理字节,因为输入输出分为 字节流 和 字符

    68120

    java字节流和字符

    Java中的I/O操作可以分为两种类型:字节流和字符字节流用于处理二进制数据,而字符流用于处理文本数据。本文将详细介绍Java中的字节流和字符,并给出相应的示例代码。...OutputStreamOutputStream是Java中所有输出的基类。OutputStream中定义了许多方法用于写入字节。...以下是OutputStream中一些常用的方法:void write(int b): 将指定的字节写入输出中。void write(byte[] b): 将指定的字节数组中的数据写入输出中。...三、字节流和字符的区别在Java中,字节流和字符有以下区别:处理的数据类型不同字节流主要用于处理二进制数据,如图像、音频和视频等。字符主要用于处理文本数据。...输入/输出方式不同字节流以字节为单位进行读取和写入,而字符以字符为单位进行读取和写入。编码方式不同字节流不关心数据的编码方式,可以处理任何类型的数据。

    76042

    java 字节流入门(内存数组->文件

    文件系列往期文章: java 字节流入门(文件) java 字节流入门(内存数组) 本文介绍如何将内存数组的数据写入文件中。...管道最大的魅力就是可以连接,使水从一个管道流到另一个管道,也一样。 之前我们分别介绍了文件和内存数组,既然他们是,那就应该可以连接起来。那么如何从内存数组写入文件呢?...在 java 字节流入门(文件)中,我们介绍了 FileOutputStream(FOS) 和 RandomAccessFile(RAF) 两种写文件的方式。...ByteArrayOutputStream(); 并将 b1 写入 out 中 out.write(b1); writeTo写入FOS 首先,BAOS 有一个方法叫 writeTo(),这个方法可以将 BAOS 中的数据直接写入另一个字节输出中...更准确的说法是,使用另一个字节输出的 write() 方法将 BAOS 中的数据写出去。这里 BAOS 就和一个字节数组是等价的。

    83410

    JVM与字节码——2进制字节码解析 原

    字节码解析 结构 本位将详细介绍字节码的2进制结构和JVM解析2进制的规范。...class SimpleClass{ private int i; public int get() { return i; } } 将源码编译成后,会转换成下面2进制,通常用16进制来展示...文中斜体 ~00~03 表示16进制的从第一个字节开始的偏移位置。~1d 表示1行d列这1个字段,~00~03 表示0行0列到0行3列这4个字节。每2个16进制数表示一个字节。...LineNumberTable"属性也有自己的格式,主要分为2部分,首先是开头2个字节表示行号列表的长度。然后4个字节一组,前2字节表示字节码行号,后2字节表示Java源码行号。...到此,2进制的异常处理介绍完毕。 总结 Jvm识别字节码的过程到此介绍完毕,按照这个识别过程可以理解JVM是怎么一步一步解析字节码的。

    1.1K30
    领券