IO流 概述

按照数据流向
输入流; 从外界(键盘、网络、文件...)读取数据到内存
输出流;用于将程序中的数据写出到外界(显示器、文件...)
数据源 目的地 交通工具  c->  文件A --> d -> 文件A  输入流  输出流 

按照数据类型
字节流;主要用来处理字节或者二进制对象
字节输入流(InputStream)
字节输出流(OutputStream)

字符流;主要用来处理字符、字符数组或字符串
字符输入流(Reader)
字符输入流(Writer)


IO流分类
字节流: 针对二进制文件 (视频,音频,图片)
字符流:针对文本文件(txt,xml,json,html,md...)

输入流:从外界到内存
输出流:从内存到外界

流的操作三要素:
1,数据源:数据需要从哪里到内存?
2,母对的:数据从内存到哪里?
3,交通工具:
a,选择输入流还是输出流?也可能两个都需要
b,选取最适合的流

字节输出流:
void close() 
关闭此输出流并释放与此流相关联的任何系统资源。  
void flush() 
刷新此输出流并强制任何缓冲的输出字节被写出。  
void write(byte[] b) 
将 b.length字节从指定的字节数组写入此输出流。  
void write(byte[] b, int off, int len) 
从指定的字节数组写入 len个字节,从偏移 off开始输出到此输出流。  
abstract void write(int b) 
将指定的字节写入此输出流。  

1,字节流可以不使用flush,字符流必须flush,建议都使用flush
2,close释放流的资源,自带flush

java.io.FileNotFoundException
产生原因:
1,文件盘符不存在
2,文件路径父目录不存在

java.io.IOExceotion: Stream Closed
产生原因:
1,文件流关闭,还在继续使用

文件字节输出流:

构造方法:
FileOutputStream(File file) 
创建文件输出流以写入由指定的 File对象表示的文件。  
(创建一个向file文件中写数据的输入文件流)
FileOutputStream(File file, boolean append) 
创建文件输出流以写入由指定的 File对象表示的文件。
(创建一个向file文件中追加数据的输入文件流)  
FileOutputStream(FileDescriptor fdObj) 
创建文件输出流以写入指定的文件描述符,表示与文件系统中实际文件的现有连接。  
FileOutputStream(String name) 
创建文件输出流以指定的名称写入文件。  
(创建一个向name文件中写数据的输出文件流)
FileOutputStream(String name, boolean append) 
创建文件输出流以指定的名称写入文件。  

注意:
在不同操作系统中对换行符的主持不一样
Windows \r \n
Linnx \n
Mac \r
1,字节流在处理换行符(等多只种)方面不方便
2,带append参数的表示追加写入


注意:
1,作为输出流,文件可以不存在,会自动创建,作为输入流,文件必须存在!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值