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

Java输入输出流详解

Java语言的输入输出功能是十分强大而灵活的,美中不足的是看上去输入输出的代码并不是很简洁,因为你往往需要包装许多不同的对象。...在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流。...按数据传输单位分: 字节流: 以字节为单位传输数据的流 字符流: 以字符为单位传输数据的流 按功能分: 节点流: 用于直接操作目标设备的流 过滤流: 是对一个已存在的流的链接和封装...java语言的输入输出功能是十分强大而灵活的,美中不足的是看上去输入输出的代码并不是很简洁,因为你往往需要包装许多不同的对象。...在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流….本文的目的是为大家做一个简要的介绍。

1.2K30

Java实现文件写入——IO流(输入输出流详解)

输入输出的重要性: 输入和输出功能是Java对程序处理数据能力的提高,Java以流的形式处理数据。流是一组有序的数据序列,根据操作的类型,分为输入流和输出流。...---- (二)使用字节输入输出流 字节流用于处理二进制数据的读取和写入,它以字节为单位,InputStream类和OutputStream类是字节流的抽象类,它们定义了数据流读取和写入的基本方法...catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } (三) 使用字符输入输出流...字符输入输出流 与 字节输入输出流有相同的功能,但传送数据的方式不一样,字节流以字节为单位传送数据,可以使任何类型的数据,例如文本、音频、视频、图片等。...字符流以字符为单位传送数据,只能传送文本类型的数据。使用字符输入输出流的好处是,当读取中文时不会出现乱码问题,而使用字节输入输出流时,却不能保证这一点。

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

    详解Java中的IO输入输出流!

    IO流是实现输入输出的基础,它可以很方便地实现数据的输入输出操作,即读写操作。 本片要点 介绍流的定义和基本分类。 介绍文件字符流、字节流、转换流、合并流、打印流等使用。 介绍序列化的意义。...根据功能 节点流:直接从/向数据源【如磁盘、网络】进行数据读写 处理流:封装其他的流,来提供增强流的功能。...输入流 输出流 字符流 Reader Writer 字节流 InputStream OutputStream 上面四大基本流都是抽象类,都不能直接创建实例对象。...流中的异常处理 无论流操作成功与否,关流操作都需要进行,所以需要将关流操作放到finally代码块中。...关流可能会失败,此时流依然会占用文件,所以需要将流对象置为null,标记为垃圾对象进行强制回收以释放文件。

    16330

    Java 输入输出流

    前言 我们日常开发过程中,有许多方面都涉及到 IO 流,比如上传下载、传输、设计模式等等。而所有的一切都是基于 IO 流来进行,所以今天就来看看 Java 中 IO 流的相关知识点。...什么是流 所谓流,就是一系列数据的组合。...Java 中,数据的输入和输出都是以流的形式来进行的。根据数据流方向的不同,我们可以将其分为:输入流、输出流。而根据处理的数据单位不同,可分为:字节流、字符流。...两者的关系可以描述为下表: 字节流 字符流 输入流 InputStream Reader 输出流 OutputStream Writer 而对于字节流和字符流的选用原则,我们建议遵循如下规则:如果数据能够通过...而如果我们也不知道应该使用何种类型的流,则默认使用字节流。 下图描述了字节流和字符流的类层次图,注意:无论是字节流还是字符流,其子类名都是以其父类名作为子类名的后缀的。

    55430

    输入输出流(IO)

    1、IO流概述 IO流用来处理设备之间的数据传输。...例如:上传文件和下载文件 Java对数据的操作是通过流的方式 Java用于操作流的对象都在IO包中 2、IO流分类 按照数据流向 输入流 读入数据 输出流 写出数据 按照数据类型 字节流 字符流...3、IO流基类 字节流的抽象基类: InputStream ​ OutputStream 字符流的抽象基类: ​ Reader ​ Writer 注意:由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀...所以,我们考虑先使用字节流后面再讲会什么出现字符流。 ​...//写数据 fos.write("hello,IO".getBytes()); fos.write("java".getBytes()); //释放资源 //关闭此文件输出流并释放与此流有关的所有系统资源

    57410

    JavaIO流输入输出流-字节流

    IO流分为输入流、输出流 输入输出流 又分为字节流、字符流 字节流 InputStream:抽象了应用程序读取数据的方式 OutputStream:抽象了应用程序写 出数据的方式 EOF = End...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...> 使用原生缓冲的流 > 不使用缓冲的流1 2 3 4//计算时延 long start=System.currentTimeMillis(); long end=System.currentTimeMillis...最后关闭IO流和文件流应该在finally中关闭,否则IO异常时执行不到close语句,IO流仍然没有关闭。 |:----|:----|

    65410

    Java文件输入输出流

    流的分类  在Java程序中操作文件,都是以流的形式来操作  首先按照流向可以分为输入流与输出流两种,这里的输入输出是站在内存的角度而言的,流向内存的为输入流,流出内存的为输出流按照传输的单位可以分为字节流与字符流...最后再根据将字节数组转换成需要的类型,最后也需要调用close释放资源  缓冲流  缓冲流相对于上述的字节流字符流并不是一个层面的东西,它并不具备直接操作文件的能力,而是要基于上述的字节流和字符流为基础...之所以要设计缓冲流这个东西,是为了提高读写效率,因为缓冲是利用了将数据先缓存起来,然后再一起写入或读出,避免频繁的磁盘IO操作,提高读写速度。...字符流主要包括FileWriter和FileReader,字符缓冲流BufferedWriter,BufferedReader,用法与上述的字节流基本一致,只不过调用read之后获取到的是字符类型,需要用...stringBuilder.toString());             fileReader.close();             bufferedReader.close(); 以上是对于常用的输入输出流使用的总结

    92220

    Java:输入输出流笔记

    概述 关闭流时,先打开后关闭,后打开先关闭 流:指一连串流动的字符,以先进先出的方式发送信息的通道 File类的应用 什么是文件?...输出流:只能写数据,不能读取数据 public class FileOutputDemo { public static void main(String[] args) {...缓冲输入流BufferedInputStream 缓冲输出流BufferedOutputStream 字符流 字符输入流Reader 字符输出流Writer 字节字符转环流 InputStreamReader...BufferedReader 缓冲输入流 BufferedWriter 缓冲输出流 /** * 和上边基本一致 */ FileInputStream fis = new FileInputStream(...= -1){ bw.write(cbuf,0,n); bw.flush; } 对象序列化与反序列化 Java对象的序列化(Serialization)和反序列化详解 Java的对象序列化就是把对象写入到输出流中

    51410

    全面掌握IO(输入输出流)

    该类是位于java.io包下的 输入与输出IO: 输入流:只能从中读取数据,而不能向其中写入数据(由InputStream(字节流)和Reader(字符流)作为基类) 输出流:只能向其写入数据,而不能从中读取数据...与处理流相对)-----会直接与指定的文件关联而无包装。...比较好, 在字节流与字符流之间选择的规律:如果需要进行输入/输出的内容是文本内容,则应该考虑使用字符流,如果需要进行输入/输出的是二进制内容,则应该考虑使用字节流,因为字节流的功能比字符流强大,计算机中所有的数据都是二进制的...,下面将了解处理流的使用,处理流会显得更加的高效 区分节点流于处理流的方法是:只要流的构造器的参数不是一个物理节点,而是已存在的流,那这个流一定是处理流,因为所有的节点流都是直接以物理io节点作为构造器的参数...从上面的实例就可以看出将节点流封装成处理流很简单,只需调用处理流的构造方法来传入节点流就可以了;而且看到上面流的关闭只是关闭了处理流而未去关闭节点流,这样做是完全正确的,以后我们在关闭流的时候只需要关闭最上层的处理流即可

    876150

    Java中IO流,输入输出流概述与总结

    其中, 所有输入流类都是抽象类InputStream(字节输入流),或者抽象类Reader(字符输入流)的子类; 而所有输出流都是抽象类OutputStream(字节输出流)或者Writer(字符输出流...OutputStream(字节输出流)和Writer(字符输出流)通俗的理解都是写(writer)的。 】 最后下面搞清楚各种流的类型的该怎么用,谁包含谁,理清思路。...String s : str){ 23 System.out.println(s); 24 } 25 26 } 27 } 7:下面以一些字节输入输出流具体的案例操作...close()方法,不但会关闭流,还会再关闭流之前刷新缓冲区,关闭后不能再写出 8:字符流FileReader和FileWriter 字符流是什么   * 字符流是可以直接读写字符的IO流   * 字符流读取字符...IO流(什么情况下使用字符流) * 字符流也可以拷贝文本文件, 但不推荐使用.

    1.4K50

    JAVA 输入输出流 本地文件读写

    流名为什么名字都这么长???? 这让我咋么记? 今天我想实现的功能是基本的文件操作,从输入in文件里读取数据,然后程序处理之后输出到out输出文件中,以助于ACM中的"对拍"。...先测试了一下BufferedReader的readLine()方法,这个方法是一次直接读取一行,失败返回null 对那三个流也不太懂它们的意思,先用着以后再琢磨吧。...);//定义输出文件out InputStreamReader inn = new InputStreamReader(new FileInputStream(in));//定义输入阅读流...BufferedReader br = new BufferedReader(inn);//定义输入缓存流 BufferedWriter outt = new BufferedWriter...(new FileWriter(out));// 定义输出缓存流 String str;//一个普通的字符串 str while((str = br.readLine())!

    17630
    领券