Java流的概念

IO流继承关系,如图所示:(了解)

  1. 流(Stream)是指在计算机的输入输出操作中各部件之间的数据流动。按照数据的传输方向,流可分为输入流与输出流。Java语言里的流序列中的数据既可以是未经加工的原始二进制数据,也可以是经过一定编码处理后符合某种特定格式的数据。
  2. 在Java中,把不同类型的输入输出源抽象为流,其中输入和输出的数据称为数据流(Data Stream)。数据流是Java程序发送和接收数据的一个通道,数据流中包括输入流(Input Stream)和输出流(Output Stream)。通常应用程序中使用输入流读出数据,输出流写入数据。 流式输入、输出的特点是数据的获取和发送均沿数据序列顺序进行。相对于程序来说,输出流是往存储介质或数据通道写入数据,而输入流是从存储介质或数据通道中读取数据,一般来说关于流的特性有下面几点:
    先进先出,最先写入输出流的数据最先被输入流读取到。
    顺序存取,可以一个接一个地往流中写入一串字节,读出时也将按写入顺序读取一串字节,不能随机访问中间的数据。
    只读或只写,每个流只能是输入流或输出流的一种,不能同时具备两个功能,在一个数据传输通道中,如果既要写入数据,又要读取数据,则要分别提供两个流。
  • FileOutputStream字节输出流原始字节流:写入操作(一般用于写入图像文件)
File file1 = new File("E:\\Youxun\\text.txt");if (!file1.exists()){file1.createNewFile();} else {System.out.println(file1+"存在");}//是否对文件内容追加,默认false,改为true将不会覆盖源文件
FileOutputStream fileOutputStream = new FileOutputStream(file1,true);fileOutputStream.write(set.toString().getBytes());fileOutputStream.close();
  • FileWriter字符输出流:写入操作(文本写入建议使用该方法)
  FileWriter fileWriter = new FileWriter(file2,true);fileWriter.write(set.toString());fileWriter.close();
  • FileInputStream字节输入流原始字节流:读取操作(单个读取)
FileInputStream fileInputStream = new FileInputStream(file1);int i;while ((i = fileInputStream.read()) != -1){System.out.println((char) i);}fileInputStream.close();
  • FileReader字符输入流:读取操作
FileReader fileReader = new FileReader(file2);char [] b = new char [1024];int len = 0;while((len = fileReader.read(b))!=-1){System.out.println(new String(b,0,len));}fileReader.close();

如有不足,多指教。

Java输入输出(IO)和流的基本概念以及几种方法相关推荐

  1. java整型转换为数组_基于java中byte数组与int类型的转换(两种方法)

    java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形 ...

  2. java中给对象的List集合去重的几种方法(Lambda)

    java中给对象的List集合去重的几种方法 前言 一.lambda表达式的去重方式 二.Stream API中的collect去重方法 三.Stream API 中的distinct方法去重 前言 ...

  3. Java知多少(66)输入输出(IO)和流的概述

    输入输出(I/O)是指程序与外部设备或其他计算机进行交互的操作.几乎所有的程序都具有输入与输出操作,如从键盘上读取数据,从本地或网络上的文件读取数据或写入数据等.通过输入和输出操作可以从外界接收信息, ...

  4. Java输入输出(io)流详解、图解

    stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源.在Java的IO中,所有的stream(包括Inputstream和Out stream)都包括两种类型: (1)字节流 ...

  5. java 中 IO 的流的种类及BIO、NIO、AIO 有什么区别?

    文章目录 java 中 IO 流分为几种? BIO.NIO.AIO 有什么区别? java 中 IO 流分为几种? (1)按流划分,可以分为输入流和输出流: (2)按单位划分,可以分为字节流和字符流: ...

  6. java遍历文件和归类_java读取文件的两种方法:java.io和java.lang.ClassLoader

    java读取文件的两种方法:java.io和java.lang.ClassLoader 什么时候使用java.io,什么时候使用java.lang.ClassLoader呢? (注:要是之前读xml文 ...

  7. java i o中文版_Java文件I/O的三种方法

    摘要:之前在面试中被问到过两次Java中文件读入输出怎么写,当时只记得一个大概,没有办法很清晰的说出一个条理,今天特地看出总结了一下这方面的内容,想要写出来给大家分享.首先文件读入输出流常用有三种:F ...

  8. java set 操作_java:Set循环遍历的俩种方法使用

    java:Set循环遍历的俩种方法使用 package collection; import java.util.*; public class NewSet { public static void ...

  9. java如何获得键值_如何在java中取map中的键值 的两种方法

    第一种方法根据键值的名字取值 import java.util.HashMap; import java.util.Map; public class Test { /** * @param args ...

最新文章

  1. vista系统 金山词霸 不取词翻译
  2. 权限系统设计模型分析(DAC,MAC,RBAC,ABAC)
  3. 设计模式之PHP项目应用——单例模式设计Memcache和Redis操作类
  4. 太神奇了!使用C#实现自动核验健康码:(1)二维码识别
  5. 请写出至少五个块级元素_Java 面试题(五)
  6. python之heapq
  7. 算法:将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。
  8. Keil5 C51版 下载与安装教程(51单片机编程软件)
  9. smartsvn破解版
  10. 宏观经济学通识课-读书笔记
  11. 什么是事实表和维度表?什么是维度和度量?
  12. 木材图像远程鉴定系统开发与实现
  13. 【JavaScript】用原生js实现幻灯片效果
  14. 40Gbit/s QSFP光模块的软件实现(硕士学位论文)错误指出
  15. 考研英语面试可能会问到的几个常见问题
  16. css-doodle学习第四天 属性
  17. 必理痛剂量_口袋里有剂量计的飞行
  18. iOS 解决时间相差8小时问题
  19. SpringBoot:通用Mapper
  20. 小学计算机课标教学大纲的依据,中小学教学大纲为何改成课程标准

热门文章

  1. 跨境电商独立站优缺点?
  2. Asymptote 学习记录(6) 练习用模块roundedpath画出一个图
  3. “会说话”的手!这个手套可以翻译手语,还能通过APP转换语音
  4. 【Java】Spring和Mybatis整合
  5. 魅族手机安装低版本的应用APK失败问题解决
  6. 现代钢笔签名脚本字体
  7. Serverless 在线教育解决方案:豌豆思维落地实践
  8. 汽车巨头福特公司如何使用大数据
  9. 基于PQ控制的三相并网逆变器的matlab/simulink仿真模型
  10. IT大败局----第三章 缩水''产品的阴霾