IO流
概述:把数据的传输这种流动按照流动的方向以内存为基准分别为inout和output数据流向内存输入流 流出内存的是输出流
java中IO操作再IO包下进行输入和输出得操作 输入---》读取数据 输出也叫写出数据 存东西叫输出 读东西叫输入
IO分类
根据数据得流向分输入流和输出流
输入流:把数据从其他设备 读取到内存中
输出流:把数据从内存中写出其他设备
根据数据类型分为: 字节流 字符流
字节流: InoutSteam outputSteam
字符流:reader writer
字节流:一切皆为字节
图片视频都是以二进制得方式存储 一个一个字节 字节流可以读任何文件
字节输出流:
OutputStream------》File OutputStream
close(); 关流
flush();刷新
write(byte [ ] btye);
File OutputStream(File File);
File OutputStream(String String);
File InputSteam
java.io.InputStream 是所有字节流输入流的超类
read();读取下一个字节
read(byte [ ] byte);
close();
File InputStream extends InputStream
File InputStream 文件字节输入流
作用:把硬盘上的数据读取到内存里
如何用:FileInputStream(String name);String name 是路径
字节输入流的使用步骤(重点)
1、创建FileInputStream对象 构造方法中要绑定读取的数据源
2、s使用对象read()读取文件
3、释放资源
读取是一个重复的过程用循环fis.read();读不到返回-1
字节输入流一次读取多个字节
read(byte [ ] byte);
byte [ ] 参数作用:
起到缓冲作用 读取是多个字节 数组长度 1024(1kb)
File Reader 成为文件字符输入流
使用步骤:1、使用Fille Reader对象构造方法当中绑定读取数据的数据源
2、使用该对象中的方法读取数据read();
3、释放资源
java.io.writer:字符输出流 抽象类
方法:write();
flush();
close();
作用:将内存中的数据写入到文件中
步骤:1、创建Filewriter 对象 数据目的地
2、用对象中的方法write()
3、flush()---》将缓冲区当中数据写到文件中
4、释放资源
续写换行:File write(String fileName ,boolean append);
换行符号:windows:
linux: /n
mac: /r
在jdk1.7之前使用try catch finally处理流中的异常
rry{可能会出现异常的代码}
catch(异常的变量 变量名){ 异常处理逻辑}
finglly{一定会执行代码 释放资源}
jdk1.9新特性
try前面可以定义流对象
在try后面()中可以直接引入流对象的名称(变量名)
在try代码执行完毕以后 流对象可以释放掉 不用写finally
Properties
java.util.proper.ties集合extends Hashtable<k,v> implements Map<k,v>持久的属性集 Properties 可以保存在流中或者从流中加载唯一的一个和IO流相结合的集合
store 把流中临时的数据持久化到硬盘中
Load 把硬盘中的文件(键对值)读取到集合中使用
使用properties集合存储数据遍历取出
properties集合有一些操作字符串的方法:
setProperties(String key,String value);
getProperties(String key);
String PropertyNames();相当于keyset方法
缓冲流
字节缓冲输出流:BufferedOutputStream extends OutputStream
close();
plush();
writer();
使用步骤:1、创建FileOutputSteam 对象
2、创建Buffered OutStream对象
3、使用BufferedOutSteam中的方法 write():写到缓冲区
4、使用BufferedOutSteam中的方法flush();
5、释放资源
字节传冲输入流:
BufferedInputSteam
read();
close();
构造方法:
new BufferedInputStream(Input Stream in);
用缓冲区读取数据的步骤
1、创建FileInputStream对象
2、创建BufferedInputStream对象
3、调用read();
4、释放资源
写的不好,如果有大佬想补充的可以在评论区留言