IO初步,字节输入流和字节输出流
字节输出流 OutputStream(基类,抽象)
特点:写任意的文件
方法:写出数据的方法:write
write(int b) 写出1个字节 -128~127之间,写的是一个ASCLL码的值
write(byte[] b) 写出字节数组
write(byte[], int off, int len) 写出字节数组的一部分
close() 关闭流,释放资源
子类:FileOutputStream
构造方法
FileOutputStream(File file) 传递File对象,数据目的
FileOutputStream(String filename) 传递字符串的文件名作为数据目的
IO字节流写数据步骤
1. 创建流对象的对象,构造方法中绑定数据目的
2. 调用方法write写
3. 关闭资源
write的方法在做类型强转(将int强转为byte)
绑定数据目的时数据目的地可以不存在,但必须在此路径下能够成功创建文件,否则FileNotFountException
原理:IO本身没有在硬盘中读取数据的功能,是由JVM的IO调用了系统的IO功能读取数据,当文件中没有数据时,OS传给
JVM一个结束标记,JVM将这个标记读取之后传个-1给内存,所以与文件中的数据本身没有关系
字节输入流 InputStream
特点:读取字节数据,读取任意的文件
方法:读取数据的方法:read
int read() 读取1个字节
int read(byte[] b) 读取字节数组
子类:FileInputStream
构造方法:
FileInputStream(File file)传递File对象,此流读取的数据源
FileInputStream(String filename)传递字符串文件名,此流读取的数据源
输入流读取数据步骤
1:创建字节输入流对象,构造方法中,绑定数据源
2:调用方法read读取
3:输出读取的结果
4:释放资源
注意:read():调用一次,自动向后读一个字节,文件末尾-1
read方法在做类型的提升,将byte提升为int(在读取一个字节数据的时候,容易出现连续8个1的情况,正好符合流结束标记,将类型提升为
int,保留该数据的同时,前面补0,避免-1)
字节输出流的缓冲流:
java.io.BufferedOutputStream
继承OutputStream 就是一个字节输出流,底层加了一个数组
方法:来自于父类OutputStream
write 字节,字节数组
构造方法:
BufferedOutputStream(OutputStream out)
传递任意的字节输出流,传递来的是谁,就缓冲谁,提高效率
字节输入流的缓冲流:
java.io.BufferedInputStream
继承InputStream,也是字节输入流
读取的方法:read 单个字节,字节数组
构造方法:
BufferedIputStream(InputStream in)
传递任意的字节输入流,传递的是谁,就对谁高效 FileInputStream
IO初步,字节输入流和字节输出流的更多相关文章
- 字节输入流_InputStream类&FileInputStream类介绍和字节输入流读取字节数据
java.io.InputStream:字节输入流 此抽象类是表示字节输入流的所有类的超类 定义了所有子类共性的方法: int read()从输入流中读取数据的下一个字节 int read(byte[ ...
- Java中的IO流之输入流|乐字节
亲爱的乐字节的小伙伴们,小乐又来分享Java技术文章了.上一篇写到了IO流,这篇文章着重 谈谈输入流,再下次再说输出流. 点击回顾上一篇:乐字节Java之file.IO流基础知识和操作步骤 一. 输入 ...
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_04 IO字节流_9_字节输入流读取字节数据
硬盘读取到内存 read值会读一个字节 a.txt里面a变成整数就是97 读取到末尾,返回-1 再读一次还是-1 读取的代码是重复的.可以使用循环去读取.while循环. 转行成char类型的 ...
- [19/03/30-星期六] IO技术_四大抽象类_ 字节流( 字节输入流 InputStream 、字符输出流 OutputStream )_(含字节文件缓冲流)
一.概念及分类 InputStream(输入流)/OutputStream(输出流)是所有字节输入输出流的父类 [注]输入流和输出流的是按程序运行所在的内存的角度划分的 字节流操作的数据单元是8的字节 ...
- Java IO详解(一)------字节输入输出流
File 类的介绍:http://www.cnblogs.com/ysocean/p/6851878.html Java IO 流的分类介绍:http://www.cnblogs.com/ysocea ...
- 字节输入流:io包中的InputStream为所有字节输入流的父类。
字节输入流:io包中的InputStream为所有字节输入流的父类. Int read();读入一个字节(每次一个): 可先使用new byte[]=数组,调用read(byte[] b) read ...
- Java IO详解(三)------字节输入输出流
File 类的介绍:http://www.cnblogs.com/ysocean/p/6851878.html Java IO 流的分类介绍:http://www.cnblogs.com/ysocea ...
- 字节输出流的续写和换行和字节输入流InputStream类&FileInputStream类介绍
数据追加续写 每次程序运行,创建输出流对象,都会清空目标文件中的数据.如何保目标文件中的数据,还能继续添加新数据呢? public FileOutputStream(File file,boolean ...
- IO概述(概念&分类)和字节输入流+OUTputStream类&FileOutPutStream类介绍
IO概述 什么是IO 生活中,你肯定经历过这样的场景.当你编辑一个文本文件,忘记了保存,可能文件就白白编辑了.当你的电脑上插入一个U盘,可以吧一个视频,拷贝到你的电脑硬盘里,那么数据都是在哪些设备上的 ...
随机推荐
- gitj基础2
回滚版本 git reset --hard HEAD^ 回滚上一个版本 git reset --hard 版本号(或者版本号前6位) 回滚到指定版本 如果修改版本了,也关 ...
- python 客户端 httplib 、 requests分别post数据(soap)
httplib import httplib soapbody =''' <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap ...
- Linkedlist 详解
基本介绍 Linkedlist基于链表的动态数组(双向链表): 可以被当作堆栈(后进先出).队列(先进先出)或双端队列进行操作. 数据添加删除效率高,只需要改变指针指向即可,但是访问数据的平均效率低, ...
- SCOI 2014 省选总结
总的来说作为高一党,去做省选难度的题完全就是去玩的,还是找惯例起身跪hja. 跪毕,看看自己惨不忍睹的成绩,我只想说:电子坑大为什么day1的暴力只有10分!为什么呢?我笑看题面: 方伯伯种玉米,方伯 ...
- 后缀自动机求多串LCS——spojlcs2
/* 每个状态存最长匹配长度,然后多个串匹配过程中取最小的最长匹配长度 和LCS1不同的地方:LCS只要维护住当前匹配长度和最长匹配长度即可,但是多串匹配需要维护的是每个状态结点(即后缀树上)的信息 ...
- VS新建工程或者新建项时 出现未定义标识符号
VS新建工程或者新建项时 出现未定义标识符号,编译之后不影响运行,但是看着很不舒服,影响效率. 解决办法:属性--->VC++目录-->包含目录-->编辑,将自己所用QT的inclu ...
- 3步永久性激活IntelliJ IDEA 亲测有效
1.进到文件夹中:C:\Windows\System32\drivers\etc ,找到hosts文件,用文本编辑器打开文件,将“ 0.0.0.0 account.jetbrains.com ”添加 ...
- 从数组中任意取出2个数,判断他们的和是否为输入的数字sum,时间复杂度为0(n^2),空间复杂度0(1)
从数组中任意取出2个数,判断他们的和是否为输入的数字sum,时间复杂度为0(n^2),空间复杂度0(1) 假设数据已经是排序好的 #include <stdio.h> #include & ...
- ES6 学习 -- 箭头函数(=>)
(1).只有一个参数且只有一句表达式语句的,函数表达式的花括号可以不写let test = a => a; // 只有一个参数a,这里的表达式相当于 "return a" ( ...
- JS对象 向下取整floor() floor() 方法可对一个数进行向下取整。 语法: Math.floor(x)
向下取整floor() floor() 方法可对一个数进行向下取整. 语法: Math.floor(x) 参数说明: 注意:返回的是小于或等于x,并且与 x 最接近的整数. 我们将在不同的数字上使用 ...