Java输入输出(IO)和流的基本概念以及几种方法
Java流的概念
IO流继承关系,如图所示:(了解)
- 流(Stream)是指在计算机的输入输出操作中各部件之间的数据流动。按照数据的传输方向,流可分为输入流与输出流。Java语言里的流序列中的数据既可以是未经加工的原始二进制数据,也可以是经过一定编码处理后符合某种特定格式的数据。
- 在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)和流的基本概念以及几种方法相关推荐
- java整型转换为数组_基于java中byte数组与int类型的转换(两种方法)
java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形 ...
- java中给对象的List集合去重的几种方法(Lambda)
java中给对象的List集合去重的几种方法 前言 一.lambda表达式的去重方式 二.Stream API中的collect去重方法 三.Stream API 中的distinct方法去重 前言 ...
- Java知多少(66)输入输出(IO)和流的概述
输入输出(I/O)是指程序与外部设备或其他计算机进行交互的操作.几乎所有的程序都具有输入与输出操作,如从键盘上读取数据,从本地或网络上的文件读取数据或写入数据等.通过输入和输出操作可以从外界接收信息, ...
- Java输入输出(io)流详解、图解
stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源.在Java的IO中,所有的stream(包括Inputstream和Out stream)都包括两种类型: (1)字节流 ...
- java 中 IO 的流的种类及BIO、NIO、AIO 有什么区别?
文章目录 java 中 IO 流分为几种? BIO.NIO.AIO 有什么区别? java 中 IO 流分为几种? (1)按流划分,可以分为输入流和输出流: (2)按单位划分,可以分为字节流和字符流: ...
- java遍历文件和归类_java读取文件的两种方法:java.io和java.lang.ClassLoader
java读取文件的两种方法:java.io和java.lang.ClassLoader 什么时候使用java.io,什么时候使用java.lang.ClassLoader呢? (注:要是之前读xml文 ...
- java i o中文版_Java文件I/O的三种方法
摘要:之前在面试中被问到过两次Java中文件读入输出怎么写,当时只记得一个大概,没有办法很清晰的说出一个条理,今天特地看出总结了一下这方面的内容,想要写出来给大家分享.首先文件读入输出流常用有三种:F ...
- java set 操作_java:Set循环遍历的俩种方法使用
java:Set循环遍历的俩种方法使用 package collection; import java.util.*; public class NewSet { public static void ...
- java如何获得键值_如何在java中取map中的键值 的两种方法
第一种方法根据键值的名字取值 import java.util.HashMap; import java.util.Map; public class Test { /** * @param args ...
最新文章
- vista系统 金山词霸 不取词翻译
- 权限系统设计模型分析(DAC,MAC,RBAC,ABAC)
- 设计模式之PHP项目应用——单例模式设计Memcache和Redis操作类
- 太神奇了!使用C#实现自动核验健康码:(1)二维码识别
- 请写出至少五个块级元素_Java 面试题(五)
- python之heapq
- 算法:将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。
- Keil5 C51版 下载与安装教程(51单片机编程软件)
- smartsvn破解版
- 宏观经济学通识课-读书笔记
- 什么是事实表和维度表?什么是维度和度量?
- 木材图像远程鉴定系统开发与实现
- 【JavaScript】用原生js实现幻灯片效果
- 40Gbit/s QSFP光模块的软件实现(硕士学位论文)错误指出
- 考研英语面试可能会问到的几个常见问题
- css-doodle学习第四天 属性
- 必理痛剂量_口袋里有剂量计的飞行
- iOS 解决时间相差8小时问题
- SpringBoot:通用Mapper
- 小学计算机课标教学大纲的依据,中小学教学大纲为何改成课程标准